From 9e89e5c254b735eda36a3ca72496d1a6fa3463f3 Mon Sep 17 00:00:00 2001 From: Stargamers Date: Thu, 18 Jan 2018 17:36:39 +0100 Subject: [PATCH 01/59] Updated German Translation --- app/src/main/res/values-de/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 483bde93..1d17788f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -481,6 +481,7 @@ Ladebild deaktivieren Dieses Problem wird zum FastHub Repo in GitHub übermittelt Bei Nutzung des mobilen Internets Ladebild deaktivieren + blockieren From facbc4150b5ff1ade2cb7149c34f4c2e3061a60f Mon Sep 17 00:00:00 2001 From: akkk33 Date: Sat, 20 Jan 2018 17:21:51 +0200 Subject: [PATCH 02/59] Added Arabic translation --- app/src/main/res/values-ar/strings.xml | 462 +++++++++++++++++++++++++ 1 file changed, 462 insertions(+) create mode 100644 app/src/main/res/values-ar/strings.xml diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml new file mode 100644 index 00000000..6873f319 --- /dev/null +++ b/app/src/main/res/values-ar/strings.xml @@ -0,0 +1,462 @@ + + FastHub + FastHub for Android + com.fastaccess.ui.widgets.recyclerview.layout_manager.LinearManager + com.fastaccess.ui.widgets.recyclerview.layout_manager.GridManager + com.fastaccess.ui.widgets.recyclerview.layout_manager.StaggeredManager + @string/appbar_scrolling_view_behavior + com.fastaccess.ui.widgets.TabletBehavior + جارِ التحميل، برجاء الإنتظار… + فعل + الإعدادات + تجاهل + إلغاء + حسنا + لا توجد بيانات + بحث + من فضلك سجل الدخول لاستخدام فاست هَب + سجل الدخول لحساب جِت هَب لكي تحصل على كافة ميزات فاست هَب + فشل تسجيل الدخول + تسجيل الدخول + مشاركة + إعادة التحميل + التغذية + Gists + الملف الشخصي + خطأ + اضغط مرة أخرى للخروج + Readme + مفتوح + مُغلق + اختر مستودع + Commits + المتابِعين + المتابَعين + Overview + Repositories + Forked + Starred + تابع + ألغِ المتابعة + المستخدِم + profile_image_transition + profile_title_transition + Code + Issues + Pull Requests + التفاصيل + Repository + تم اكتشاف ملف مضغوط, من فضلك قم بتحميله لاكتشاف محتواه. + الحد الأدنى للرموز (3) + لا توجد ملفات + لا يوجد ملف اقرأني + جارِ التحميل… + جارِ تحميل الملف… + صَدَر + حُفِظَ كمسودة + الإصدارات + لا يوجد مضمون + Source code (zip) + Source code (tar.gz) + المساهمون + المساهمات + Merged + بواسطة + Star + Stars + Fork + Forks + إغلاق العلة + إعادة فتح العلة + إعادة الفتح + إغلاق + تم إعادة الفتح بنجاح + إغلاق المحادثة يعني أن:\n·المستخدمين الآخرين لا يستطيعون إضافة تعليقات جديدة لهذه العلة.\n·أنت والمساهمون الآخرون القادرون على الولوج لهذا المستودع ما زلتم قادرين على كتابة تعليقات يستطيع الآخرون رؤيتها.\n·يمكنك في أي وقتٍ فتح هذه المشكلة مرة أخرى في المستقبل.\n + فتح المحادثة يعني أن:\n·الجميع سوف يكونوا قادرين على التعليق على هذه العلة مرة أخرى.\n·يمكنك دائما غلق هذه العلة مرة أخرى في المستقبل.\n + إغلاق المحادثة + فتح المحادثة + حدث خطأ أثناء محاولة غلق العلة، من فضل أعد المحاولة. + حدث خطأ أثناء محاولة إعادة فتح العلة، من فضل أعد المحاولة. + تم إغلاق العلة بنجاح +

لم يتم تقديم وصف

+ العنوان الأول + العنوان الثاني + العنوان الثالث + سميك + مائل + مشطوب + قائمة غير مُرَتبة + قائمة مرتبة + عنوان + اقتباس + رابط + صورة + حذف + إضافة + تغييرات + الحالة + هل أنت متأكد؟ + نجاح + إلى + حدث خطأ أثناء حذف التعليق + حذف + التعليقات + تعليق + Issue + Merge + Pull Request + Commit + تم الدمج بنجاح + قائمة الملف + الملفات + تحميل + للخلف + المجلد الأب + مستعرِض الكود + فتح في المتصفح + ملف كبير + هذا الملف كبير جدا ولا يمكن فتحه.\nاضغط "حسنا" لتحميله. + مستعرِض + Markdown + اعتمد + اكتب هنا + الوصف + اسم الملف + اسم الملف مع اللاحقة + مقال سري + مقال عام + اعتماد كـ + حذف المقال + خطأ أثناء حذف المقال + لا توجد ملفات + حقل مطلوب + تم الإعتماد بنجاح + إنشاء مقال + Gist + مسح + مستخدمون + العنوان + الملف + محطة + تعيين نفسي + اعتماد المشكلة + حدث خطأ أثناء إنشاء العلة + إنشاء العلة + من فضلك أزِل اختيار التظليل لاستكمال التعديل. + الإشعارات + لديك إشعارات غير مقروءة + افتح + نوع الإشعار + / + علامات + بدون علامات + تم إضافة علامات + اعتماد رد الفعل + تسجيل الخروج + شكرا على رد فعلك! + النسخة الحالية + النسخة + ادعم التطوير، فعّل الإعلانات + اسم المستخدم + كلمة المرور + رمز التحقق الثنائي + تسجل الدخول + وصف المقال + أينما تكون هناك صورة رمزية، تستطيع الضغط عليها لفتح الصفحة الشخصية للمستخدم + الضغط المطول على حدث تفرع لفتح إما المستودع الأصلي أو المتفرع منه. + تحميل إصدارات + خيارات + تحميل الملف أو مشاركة المجلد + اضغط على تعليق للإشارة إلى مؤلفه أو لتعديل تعليقك. + \n اضغط مطولا على تعليقك لحذفه. + إعطاء نجمة أو إلغائها لمستودع + مشاهدة + مشاهدة/إلغاء مشاهدة مستودع + Fork repo + تثبيت المستودعات لسهولة الولوج إليهم من درج الملاحة. + إلغاء الكل + لم يتم العثور على عنوان + آخر تحديث + عرض + محسّن عرض الأكواد + تشغيل/تعطيل محسّن عرض الأكواد. + \n اسحب أيقونات محرر Markdown لمزيد من الخيارات. + وقت الإنشاء + عندما تم إنشاء الملف + عندما تم تحديث الملف آخر مرة + com.fastaccess.ui.widgets.FloatingActionButtonBehavior + تحديد الكل كمقروء + كل الإشعارات + غير مقروء + الكل + حذف المستودع + لا يمكن التراجع عن حذف المستودع + 30 دقيقة + 20 دقيقة + 10 دقيقة + 5 دقيقة + دقيقة واحدة + ساعة واحدة + ساعتان + 3 ساعات + تم الإنشاء + تم التسليم + تم التحميل + تمت المتابعة + @string/gist + Wiki + التعليق على العلة + Issue + عضو + Open-sourced + تعليق على طلب السحب + تم الدفع إلى + فريق + تم الحذف + مجهول + تم التعليق على التسليم + Organization + Card + Project + Pull Request + Repository + تبديل الفرع + التعيينات + تحرير + \u2022 تم التعديل + تحديث العلة + تحديث طلبات السحب + لا توجد محطات توقف + إضافة + تم + الرئيسية + إنشاء محطة توقف + حدث خطأ أثناء محاولة إنشاء محطة توقف + بسبب + لا توجد تعيينات + هذا + التسليمات تم تغييرها إلى الفرع المختار + عام + تغيير زمن تكرار البحث عن إشعارات جديدة + تكرارية مزامنة الإشعارات + كل + تصرف + تخصيص + تمكين حركات القوائم + حركات القوائم + تعطيل رسالة منع الإغلاق غير المقصود للبرنامج + إضغط زر العودة للخروج + إستعادة + نسخة احتياطية + تم النسخ الاحتياطي بنجاح + اختر النسخة الاحتياطية لاستعادتها + لم يتم الحصول على الصلاحية + آخر تحديث: %s + الآن + أية تغييرات غير محفوظة سيتم تجاهلها + خاص + استخدام صور رمزية ذات حواف مدورة بدلا من الصور الدائرية + ظهور الصور الشخصية + تقييم هذا التطبيق + المؤلف + إنشاء فرع في جِتْ هَب + إرسال بريد إلكتروني + fastaccess.app@gmail.com + سؤال حول فاست هَبْ + ملاحظة + التبليغ عن عِلّة + واجهت علة؟ بلغ عنها هنا + حول + إشعار + إيقاف + مستخدم غير مرخص + مطلوب توثيق ثنائي + لا توجد علل + نسخ + تم النسخ + رسالة التسليم + حدث خطأ أثناء الاتصال بالخادم + حدث خطأ أثناء الاتصال بالواجهة البرمجية + حدث خطأ أثناء الاتصال بالخادم، من فضلك أعد المحاولة مرة أخرى + تحديد الإشعارات كمقروء + إنشاء تفرع من المقال + Forking %s + Starring %s + Unstarring %s + Unwatching %s + Watching %s + تسجيل الدخول عن طريق المتصفح + أو + تعطيل وضع قراءة الإشعارات + تعطيل تحديد الإشعار كمقروء عند النقر عليه. + Light Theme + Dark Theme + Red + Pink + Purple + Deep Purple + Indigo + Blue + Light Blue + Cyan + Teal + Green + Light Green + Lime + Yellow + Amber + Orange + Deep Orange + اختيار السمة + اختيار السمة الافتراضية + اختيار لون السمة + لون السمة + Logo Designer (%s) + Google+ + الموقع الإلكتروني + Twitter + دعم التطوير + شكرا لك من أعماق قلبي! + إذا لم تعمل السمة، فالرجاء إيقاف التطبيق بالقوة. + تثبيت + تم التثبيت + إلغاء التثبيت + لم يتم تثبيت مستودعات + نعم + لا + لا توجد مصادر + لا توجد مقالات + لا توجد تعليقات + لا إشعارات + لا متابِعُون + لا متابَعِين + لا مستودعات + لم يتم تمييز مستودعات + لا تسليمات + لا مساهمون + لا توجد إصدارات + لا توجد علل مغلقة + لا توجد علل مفتوحة + لا توجد أحداث + لا توجد طلبات سحب مفتوحة + لا توجد طلبات سحب مغلقة + لا توجد نتائج بحث + من فضلك وافق على إعطاء الصلاحيات من أجل تمكين التطبيق من حفظ الملفات على ذاكرة الجهاز حتى تتمكن من مشاهدتهم + مقالات عامة + تمكين الإعلانات + لا توجد علل + لا توجد إشعارات غير مقروءة. + مقالاتي + سجل التغييرات + اضغط لفتح قائمة الإشعارات أو اسحب لتجاهلها + Posting reaction %s + الضغط المطول من أي مكان للانتقال للصفحة الرئيسية + تم الإنشاء + تم التعيين + تمت الإشارة + الإسم + اللون + إنشاء علامة + منظمة + منظمات + الناس + فِرق + أعضاء + لا أعضاء + لا فِرق + لا منظمات + تحديد كمقروء + التأثيرات + تفعيل التأثيرات الفقاعية + التأثيرات الفقاعية + محطات + المعهود إليه + فشلت كل الفحوصات + الفحوصات قيد الانتظار + نجحت كل الفحوصات + فرز + الأحدث + الأقدم + الأكثر تعليقا + الأقل تعليقا + المحدّث أخيرا + المحدّث أولا + أنت محدّث + هناك نسخة أحدث + لا يمكن ترك خانة البحث فارغة + قم بالضغط المطول لإنشاء علّة جديدة + طلب السحب هذا يمكن دمجه + تمت المراجعة + تجاهل مراجعتهم + الموافقة على تلك التغييرات + لا ردود فعل + ردود الفعل + تغليف المحتوى + تغليف الشفرة افتراضيا + تغليف الشفرة + المكتبات مفتوحة المصدر + تفعيل صوت الإشعارات بمجرد وصول إشعار جديد + تفعيل صوت الإشعارات + تفعيل الإشعارات + تسجيل الدخول بواسطة الرمز الشخصي + الرمز الشخصي + تسجيل الدخول بواسطة التوثيق + إذا كنت مرتبطا بمنظمة ولا تجدها هنا، فمن فضلك اتبع الرابط التالي : and.\nhttps://help.github.com/articles/about-third-party-application-restrictions\nPS: تستطيع تسجيل الدخول بواسطة الرمز وبالتالي منح فاست هَب إمكانية عرض المنظمات. + إدخال + تحديد + تحديد صورة + دعم بـ 2 دولار + دعم بـ 5 دولار + دعم بـ 10 دولار + دعم بـ 20 دولار + لغة التطبيق + اللغة + اختر لغة + اختر لغتك المفضلة + إلغاء الاشتراط + من + في + اشتراك + المستودع لا يحتوي على صفحة العلل + رمز الوصول + توثيق أساسي + اختر وسيلة تسجيل الدخول + في الملفات + في المسارات + مراجعة الطلبات + الانضمام إلى سلاك + هل تود الانضمام إلى مجموعة فاست هَب في سلاك؟ + تمت الدعوة بنجاح + الرد + تعذر تحميل الصورة. + يريد الدمج + المشاهدون + المراجعون + لا مراجعون + تم الإرسال من %1$s باستخدام %2$s%3$s + تفعيل التوقيع + تفعيل توقيع "تم الإرسال بواسطة" + تفعيل مربع التوقيع + تفعيل مربع التوقيع بهدف تسهيل تفعيل/إلغاء تفعيل التوقيع + الإشارات + إضافة تعليق + تقديم اللافتات + مع فاست هَب 2.5.0, تستطيع تمييز نفسك بشكل أفضل عن طريق اللافتات في صفحتك الشخصية .\n\nأي شخص يستخدم فاست هَب سوف يرى اللافتة, وأنت ستستطيع رؤية لافتات الآخرين أيضا!إذا أردت صنع واحدة،اجعلها بمقاس 1280x384 أو مقسومه،وإلا سيتم اقتصاص الصورة.\n\nتستطيع إضافة وتعديل لافتتك في أي وقت، عن طريق إنشاء مقالة باسم "header.fst" مع ملف يحتوي على رابط مباشر للصورة.\n\nأو ببساطة ، استخدم رافع الصور! + + اختر لافتة + تعذر فتح الصورة ، حاول مرة أخرى. + الشائع + الفرز بواسطة الوجوه التعبيرية لا يعمل بسبب قيود جيت هَب + التمرير لأعلى + التمرير لأسفل + مشترك + تم تحديد ما يجب عمله + تم إلغاء تحديد ما يجب عمله + فاصل + لا يوجد مستخدمون + لا يوجد شائع + Daily + Weekly + Monthly + مرشح +
From d1c086ee872a9c2763bbccecc1edfc04f5f475de Mon Sep 17 00:00:00 2001 From: akkk33 Date: Sun, 21 Jan 2018 17:00:55 +0200 Subject: [PATCH 03/59] Updated Arabic translation --- app/src/main/res/values-ar/strings.xml | 85 ++------------------------ 1 file changed, 6 insertions(+), 79 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 6873f319..ed4f766e 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -1,11 +1,4 @@ - FastHub - FastHub for Android - com.fastaccess.ui.widgets.recyclerview.layout_manager.LinearManager - com.fastaccess.ui.widgets.recyclerview.layout_manager.GridManager - com.fastaccess.ui.widgets.recyclerview.layout_manager.StaggeredManager - @string/appbar_scrolling_view_behavior - com.fastaccess.ui.widgets.TabletBehavior جارِ التحميل، برجاء الإنتظار… فعل الإعدادات @@ -21,31 +14,19 @@ مشاركة إعادة التحميل التغذية - Gists الملف الشخصي خطأ اضغط مرة أخرى للخروج - Readme مفتوح مُغلق اختر مستودع - Commits المتابِعين المتابَعين - Overview - Repositories - Forked - Starred + نظرة عامة تابع ألغِ المتابعة المستخدِم - profile_image_transition - profile_title_transition - Code - Issues - Pull Requests التفاصيل - Repository تم اكتشاف ملف مضغوط, من فضلك قم بتحميله لاكتشاف محتواه. الحد الأدنى للرموز (3) لا توجد ملفات @@ -56,16 +37,9 @@ حُفِظَ كمسودة الإصدارات لا يوجد مضمون - Source code (zip) - Source code (tar.gz) المساهمون المساهمات - Merged بواسطة - Star - Stars - Fork - Forks إغلاق العلة إعادة فتح العلة إعادة الفتح @@ -78,7 +52,9 @@ حدث خطأ أثناء محاولة غلق العلة، من فضل أعد المحاولة. حدث خطأ أثناء محاولة إعادة فتح العلة، من فضل أعد المحاولة. تم إغلاق العلة بنجاح -

لم يتم تقديم وصف

+ +

لم يتم تقديم وصف

+
العنوان الأول العنوان الثاني العنوان الثالث @@ -102,10 +78,6 @@ حذف التعليقات تعليق - Issue - Merge - Pull Request - Commit تم الدمج بنجاح قائمة الملف الملفات @@ -117,7 +89,6 @@ ملف كبير هذا الملف كبير جدا ولا يمكن فتحه.\nاضغط "حسنا" لتحميله. مستعرِض - Markdown اعتمد اكتب هنا الوصف @@ -132,7 +103,6 @@ حقل مطلوب تم الإعتماد بنجاح إنشاء مقال - Gist مسح مستخدمون العنوان @@ -147,7 +117,6 @@ لديك إشعارات غير مقروءة افتح نوع الإشعار - / علامات بدون علامات تم إضافة علامات @@ -172,7 +141,6 @@ إعطاء نجمة أو إلغائها لمستودع مشاهدة مشاهدة/إلغاء مشاهدة مستودع - Fork repo تثبيت المستودعات لسهولة الولوج إليهم من درج الملاحة. إلغاء الكل لم يتم العثور على عنوان @@ -180,11 +148,10 @@ عرض محسّن عرض الأكواد تشغيل/تعطيل محسّن عرض الأكواد. - \n اسحب أيقونات محرر Markdown لمزيد من الخيارات. + \n اسحب أيقونات محرر مارك داون لمزيد من الخيارات. وقت الإنشاء عندما تم إنشاء الملف عندما تم تحديث الملف آخر مرة - com.fastaccess.ui.widgets.FloatingActionButtonBehavior تحديد الكل كمقروء كل الإشعارات غير مقروء @@ -203,23 +170,14 @@ تم التسليم تم التحميل تمت المتابعة - @string/gist - Wiki التعليق على العلة - Issue عضو - Open-sourced تعليق على طلب السحب تم الدفع إلى فريق تم الحذف مجهول تم التعليق على التسليم - Organization - Card - Project - Pull Request - Repository تبديل الفرع التعيينات تحرير @@ -261,7 +219,6 @@ المؤلف إنشاء فرع في جِتْ هَب إرسال بريد إلكتروني - fastaccess.app@gmail.com سؤال حول فاست هَبْ ملاحظة التبليغ عن عِلّة @@ -280,41 +237,15 @@ حدث خطأ أثناء الاتصال بالخادم، من فضلك أعد المحاولة مرة أخرى تحديد الإشعارات كمقروء إنشاء تفرع من المقال - Forking %s - Starring %s - Unstarring %s - Unwatching %s - Watching %s تسجيل الدخول عن طريق المتصفح أو تعطيل وضع قراءة الإشعارات تعطيل تحديد الإشعار كمقروء عند النقر عليه. - Light Theme - Dark Theme - Red - Pink - Purple - Deep Purple - Indigo - Blue - Light Blue - Cyan - Teal - Green - Light Green - Lime - Yellow - Amber - Orange - Deep Orange اختيار السمة اختيار السمة الافتراضية اختيار لون السمة لون السمة - Logo Designer (%s) - Google+ الموقع الإلكتروني - Twitter دعم التطوير شكرا لك من أعماق قلبي! إذا لم تعمل السمة، فالرجاء إيقاف التطبيق بالقوة. @@ -349,7 +280,6 @@ مقالاتي سجل التغييرات اضغط لفتح قائمة الإشعارات أو اسحب لتجاهلها - Posting reaction %s الضغط المطول من أي مكان للانتقال للصفحة الرئيسية تم الإنشاء تم التعيين @@ -455,8 +385,5 @@ فاصل لا يوجد مستخدمون لا يوجد شائع - Daily - Weekly - Monthly مرشح -
+ From 901a95c24757763a779388d66b0c986917485bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20=C3=87ebi?= Date: Sun, 15 Apr 2018 02:57:06 +0300 Subject: [PATCH 04/59] Word replacement #1430 #1430 --- app/src/main/res/values/arrays.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index faeb0a9a..5dbdca6a 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -118,7 +118,7 @@ English Français Deutsch - Türk + Türkçe 简体中文 正體中文 Bahasa Indonesia From 6bbe0bf86feae26ae57dc450c2d37287a785ce05 Mon Sep 17 00:00:00 2001 From: Minsuk Eom Date: Mon, 19 Aug 2019 22:45:55 +0900 Subject: [PATCH 05/59] Improve Korean translations & fix some typos --- app/src/main/res/values-ko/strings.xml | 169 +++++++++++++------------ 1 file changed, 87 insertions(+), 82 deletions(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index df2bf5c6..e8bd1b92 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -1,6 +1,6 @@ - 로딩 중, 잠시만 기다려주세요 + 로딩 중, 잠시만 기다려주세요… 행동 설정 제거 @@ -16,7 +16,7 @@ 새로고침 프로필 오류 - 종료하려면 다시 한 번 눌러주세요 + 종료하려면 다시 한 번 누르기 열림 닫힘 저장소 선택 @@ -27,10 +27,10 @@ 언팔로우 사용자 세부정보 - 파일을 다운로드하여 해당 컨텐츠를 보세요 - 최소 3글자 - 파일을 찾을 수 없습니다 - Readme를 찾을 수 없습니다 + 아카이브 파일이 발견되었습니다. 콘텐츠를 보려면 파일을 다운로드하세요. + 최소 2글자 + 파일 찾을 수 없음 + Readme 찾을 수 없음 다운로드 중… 파일 다운로드 중… 릴리즈됨 @@ -40,19 +40,19 @@ 기여자 기여 by - 영어로 요구 사항를 보내주세요 + 영어로 요구 사항을 보내주세요. Issue 닫기 Issue 다시 열기 다시 열기 닫기 - 성공적으로 다시 열었습니다 - 대화 잠금은 다음을 의미합니다:\n·다른 사람은 이 Issue에 새로운 댓글을 남길 수 없습니다.\n·당신와 이 저장소에 접근할 수 있는 공동작업자는 다른 사람이 볼 수 있는 댓글을 남길 수 있습니다\n·언제든 이 Issue를 잠금해제 할 수 있습니다.\n - 대화 잠금해제는 다음을 의미합니다:\n·모두가 이 Issue에 덧글을 남길 수 있습니다.\n·언제든 이 Issue를 잠글 수 있습니다.\n + 성공적으로 다시 엶 + 대화 잠금은 다음을 의미합니다:\n·다른 사람은 이 Issue에 새로운 댓글을 남길 수 없습니다.\n·당신과 이 저장소에 접근할 수 있는 공동 작업자는 다른 사람이 볼 수 있는 댓글을 남길 수 있습니다\n·언제든 이 Issue를 잠금해제 할 수 있습니다.\n + 대화 잠금 해제는 다음을 의미합니다:\n·모두가 이 Issue에 댓글을 남길 수 있습니다.\n·언제든 이 Issue를 잠글 수 있습니다.\n 대화 잠금 - 대화 잠금해제 - Issue 닫기 오류, 잠시 후 다시 시도해주세요 - Issue 다시 열기 오류, 잠시 후 다시 시도해주세요 - Issue 닫힘 + 대화 잠금 해제 + Issue 닫기 오류, 잠시 후 다시 시도해주세요. + Issue 다시 열기 오류, 잠시 후 다시 시도해주세요. + 성공적으로 Issue 닫음

설명 없음

제목 1 제목 2 @@ -60,8 +60,8 @@ 굵게 기울임 취소선 - 순서없는 목록 - 순서있는 목록 + 순서 없는 목록 + 순서 있는 목록 제목 인용구 링크 @@ -73,7 +73,7 @@ 계속 하시겠습니까? 성공 to - 댓글을 삭제하는 중에 오류가 발생했습니다 + 댓글 삭제 중 오류 발생 제거 댓글 댓글 @@ -86,32 +86,32 @@ 코드 뷰어 브라우저로 열기 큰 파일 - 파일이 너무 커서 열 수 없습니다.\n"예"를 눌러 다운로드하세요 + 파일이 너무 커서 열 수 없습니다.\n"예"를 눌러 다운로드하세요. 뷰어 보내기 - 이곳에 입력해주세요 + 여기에 입력 설명 파일 이름 - 확장명을 가진 파일 이름 + 확장자를 가진 파일 이름 비공개 Gist 공개 Gist 다음으로 보내기 삭제 - Gist를 삭제하는 중에 오류가 발생했습니다. + Gist 삭제 중 오류 발생 파일 없음 필수 입력란 - 제출됨 + 성공적으로 제출됨 Gist 생성 - 클리어 + 모두 삭제 사용자 제목 파일 마일스톤 - 자신을 담당자에 할당 + 자신을 담당자로 할당 Issue 보내기 - Issue를 생성하는 중에 오류가 발생했습니다 + Issue 생성 중 오류 발생 Issue 생성 - 수정을 계속하려면 강조 표시를 선택 해제하세요 + 수정을 계속하려면 강조 표시를 선택 해제하세요. 알림 읽지 않은 알림이 있습니다 열기 @@ -119,10 +119,10 @@ 알림 종류 라벨 라벨 없음 - 라벨 추가됨 + 성공적으로 라벨 추가됨 피드백 보내기 로그아웃 - 피드백 감사합니다 + 피드백 감사합니다! 현재 버전 버전 개발을 지원하려면 광고를 활성화하세요 @@ -132,21 +132,21 @@ 로그인 Gist 설명 사용자 아바타를 클릭하여 사용자의 프로필을 열 수 있습니다 - Fork 이벤트를 길게 클릭하여 원본 또는 Fork된 저장소를 엽니다 + Fork 이벤트를 길게 클릭하여 원본 또는 Fork된 저장소를 엽니다. Release 다운로드 설정 파일 다운로드 또는 디렉토리 공유 - 댓글을 탭하면 작성자의 태그를 지정하거나 댓글을 수정할 수 있습니다.\n길게 누르면 삭제됩니다 - 저장소 즐겨찾기/즐겨찾기해제 + 댓글을 탭하면 작성자의 태그를 지정하거나 댓글을 수정할 수 있습니다.\n길게 누르면 삭제됩니다. + 저장소 즐겨찾기/즐겨찾기 해제 구독 - 저장소 구독/구독해제 - 사이드바에서 더 빨리 액세스 할 수 있도록 저장소를 북마크에 등록하세요 + 저장소 구독/구독 해제 + 내비게이션 드로어에서 더 빨리 액세스 할 수 있도록 저장소를 고정하세요. 모두 닫기 - URL을 찾을 수 없습니다 + URL을 찾을 수 없음 마지막 업데이트 미리보기 - 구문 강조 - 구문 강조를 활성화/비활성화합니다. + 문법 강조 + 문법 강조를 활성화/비활성화합니다. \n더 많은 설정을 보려면 Markdown 편집기 아이콘을 스크롤하세요. 생성일 파일 생성 날짜 @@ -188,31 +188,31 @@ 완료 마일스톤 생성 - 마일스톤을 생성하는 중에 오류가 발생했습니다 + 마일스톤 생성 중 오류 발생 만기일 담당자 없음 이 Branch Commit이 선택한 Branch로 전환되었습니다 일반 - FastHub이 새 알림을 확인하는 빈도를 변경합니다 + FastHub이 새 알림을 확인하는 빈도를 변경 동기화 간격 항상 행동 사용자 정의 목록 효과 활성화 목록 효과 - 앱 종료 확인 창를 비활성화합니다 + 앱 종료 확인 창을 비활성화합니다 앱 종료 확인 비활성화 복원 백업 - 백업됨 + 성공적으로 백업! 복원할 백업 선택 - 권한 허락 실패 + 권한이 없습니다. 마지막 업데이트: %s 지금 저장되지 않은 변경사항을 삭제하시겠습니까? 비공개 - 원형 아바타 대신 둥근 사각형 아바타를 사용합니다 + 원형 아바타 대신 둥근 사각형 아바타 사용 둥근 사각형 아바타 앱 평점 매기기 개발자 @@ -231,14 +231,14 @@ 복사됨 Commit 메시지 서버와 통신하는 중 오류가 발생했습니다 - API를 요청하는 중에 오류가 발생했습니다 + API 요청 중 예상치 못한 오류 서버 요청 오류, 잠시 후 다시 시도하세요 알림을 읽음으로 표시 Gist Fork하기 브라우저로 로그인 (OAuth) 또는 알림 읽음 비활성화 - 알림을 클릭하면 읽음으로 표시 기능 사용을 비활성화합니다 + 알림을 클릭하면 읽음으로 표시 기능 사용을 비활성화합니다. 테마 기본 테마 선택 테마 강조 색상 선택 @@ -246,16 +246,16 @@ 웹사이트 개발 지원 대단히 감사합니다! - 테마가 제대로 적용되지 않으면, 앱을 수동으로 재시작해주세요 - 북마크 - 북마크 - 북마크 삭제 - 아직 북마크 한 저장소가 없으므로 여기에서 볼 수 있도록 등록하세요.\nP.S: 많이 액세스할수록 저장소는 위에 배치될 것입니다. + 테마가 제대로 적용되지 않으면, 앱을 수동으로 재시작해주세요. + 고정 + 고정됨 + 고정 해제 + 아직 고정한 저장소가 없습니다. 여기에서 볼 수 있게 고정하세요.\nP.S: 많이 방문할수록 저장소가 위에 배치됨 아니요 소식 없음 Gists 없음 - 덧글 없음 + 댓글 없음 알림 없음 팔로워 없음 팔로잉 없음 @@ -265,7 +265,7 @@ 기여자 없음 Release 없음 이벤트 없음 - Pull Requests 없음 + Pull Request 없음 검색 결과 없음 파일을 보기 위해 FastHub에서 파일을 저장하려면 권한을 허용하세요 공개 Gist @@ -274,8 +274,8 @@ 읽지 않은 알림 없음 내 Gist 변경사항 - 클릭하여 알림 목록을 열거나 옆으로 밀어 닫으세요 - 길게 누르면 어디서나 기본 화면으로 이동합니다 + 클릭하여 알림 목록을 열거나 옆으로 밀어 닫기 + 길게 누르면 어디서나 기본 화면으로 이동 생성함 담당함 언급된 @@ -297,9 +297,9 @@ 팝업 효과 마일스톤 담당자 - 몇몇 검사를 통과하지 못했습니다 - 몇몇 검사가 지연되었습니다 - 모든 검사를 통과했습니다 + 몇 가지 검사 실패 + 몇 가지 검사 대기 중 + 모든 검사 통과 정렬 최신 순 오래된 순 @@ -307,21 +307,21 @@ 최신 댓글 순 최신 업데이트 순 최소 최신 업데이트 순 - 최신 버전입니다 - 새로운 버전이 있습니다 + 최신 버전입니다! + 새로운 버전이 있습니다. 검색 내용을 입력해주세요 - 길게 누르면 Issue 티켓을 즉시 생성 할 수 있습니다 - 이 Pull Request는 병합될 수 있습니다 + Issue 티켓을 즉시 생성하려면 길게 누르기 + 이 Pull Request는 병합 가능합니다. 검토됨 검토 취소됨 변경 승인됨 반응 없음 반응 줄 바꿈 - 기본적으로 코드 뷰어에서 코드 줄 바꿈을 실행합니다 + 기본 값으로 코드 뷰어에서 코드 줄 바꿈 코드 줄 바꿈 오픈소스 라이브러리 - 알림음을 활성화합니다 + 알림음을 활성화합니다. 알림음 활성화 알림 활성화 개인 토큰으로 로그인 @@ -355,7 +355,7 @@ FastHub Slack에 참여하시겠습니까? 초대됨 답글 - 이미지 불러오기에 실패했습니다 + 이미지를 불러오는 데 실패했습니다. 병합 요청 구독자 검토자 @@ -383,9 +383,9 @@ 필터 종류 정렬 순서 - 담당자 추가됨 - 검토자 추가됨 - 마일스톤 추가됨 + 성공적으로 담당자 추가됨 + 성공적으로 검토자 추가됨 + 성공적으로 마일스톤 추가됨 소식 프리미엄 테마 문법 강조 테마 @@ -399,8 +399,8 @@ 소유자 원본 포스터 검토 취소 - 테마에서 색상 네비게이션 바를 비활성화합니다 - 무색 네비게이션 + 테마에서 색상 내비게이션 바 비활성화합니다 + 무색 내비게이션 알림 소리를 선택합니다 알림 소리 선택 GIF 자동 재생 사용을 비활성화합니다 @@ -413,29 +413,35 @@ SHA-1 복사 코드로 보기 앱 애니메이션 - 모든 앱 애니메이션을 비활성화합니다 - 이 Pull Request는 현재 병합될 수 없습니다 + 모든 앱 애니메이션을 비활성화합니다. + 이 Pull Request는 현재 병합이 불가능합니다. 프로젝트 프로젝트 없음 카드 없음 %s %s가 추가함 - 변경사항이 너무 많습니다. 브라우저로 보세요 + 변경사항이 너무 많습니다. 브라우저로 확인하세요 프로젝트 - 꼭 읽어주세요 + 꼭 읽어주세요! • 왜 Private 이나 Public으로 되어진 제 Organizations 을 볼 수 없나요?

https://github.com/settings/applications 를 열고 Fasthub라는 것을 찾아보세요. 그것을 선택한 후, Organization Access 부분에서 Grant를 눌러주세요. 또는 초기 로그인시 엑세스 토큰 으로 로그인하면 편리합니다.

+
• Access Token 과 OTP 으로 로그인을 시도했는데 로그인이 되질 않아요…

OTP는 일회용 코드입니다. 따리서 유효기간에 인해 엑세스 토큰 + OTP로 로그인이 불가합니다. 이렇게 로그인을 하게 되면 몇 초에 한 번씩 앱이 로그인을 하라고 합니다. 다른 방법을 사용해 주세요.

+
• 제 비공개 리포지토리와 엔터프라이즈 위키가 보이질 않아요!
-

위 두 정보를 스크랩하려면 특별한 세션 토큰이 필요한데 본 앱을 이 토큰을 받을 수 없습니다. GitHub API의 한계이므로 API문의는 GitHub에게 해주세요. 본 앱의 개발자는 API문의를 받지 않습니다.

+

위 두 정보를 스크랩하려면 특별한 세션 토큰이 필요한데 본 앱을 이 토큰을 받을 수 없습니다. GitHub API의 한계이므로 API 문의는 GitHub에게 해주세요. 본 앱의 개발자는 API 문의를 받지 않습니다.

+
• 제가 엔터프라이즈 계정으로 로그인했는데 Enterprise GitHub 외의 다른 것들은 볼 수 없나요?
-

결론부터 말하자면 불가능합니다. 본 앱은 여러분이 다른 것들을 볼 수 있게 해 주고 있지만, 기술적 한계로 크게 도움을 드릴 수는 없습니다. 대부분의 경우에는 여러분의 로그인 계정이 GitHub 서버에 상주하고 있기 때문입니다. 그러나 소수의 경우에는 여러분의 OAuth 토큰이 다른 활동을 하게 해 줄 수 있습니다.

+

결론부터 말하자면 불가능합니다. 본 앱은 여러분이 다른 것들을 볼 수 있게 해 주고 있지만, 기술적 한계로 크게 도움을 드릴 수는 없습니다. 대부분의 경우에는 여러분의 로그인 계정이 GitHub 서버에 상주하고 있기 때문입니다. 그러나 소수의 경우에는 여러분의 OAuth 토큰이 다른 활동을 하게 해줄 수 있습니다.

+
• Issues/PR 를 수정 하는데 문제가 있습니다.

공개 Organization 리포지토리를 수정하면, 여러분의 Organization에게 문의하여 Fasthub 권환을 받거나 최초 로그인시 엑세스 토큰으로 로그인하세요.

-
• 앱을 사용하는데 문제를 발견했어요! / 혹시 이러한 기능을 추가해주실 수 있나요?
-

그럼요! https://github.com/k0shk0sh/FastHub/issues/new 로 간 후 새로운 티켓을 만드세요. 티켓을 만들기 전 먼저 전에 있었던 티켓 중 중복되는 것이 없는지 검색해 주세요. 중복시 티켓은 바로 닫힙니다. 또는 앱 드로어 (화면 왼쪽 끝에서 오른쪽으로 드래그) 에 있는 오류 보고를 클릭하여 보고하셔도 됩니다.

+ +
• 앱을 사용하는 데 문제를 발견했어요! / 혹시 이러한 기능을 추가해주실 수 있나요?
+

그럼요! https://github.com/k0shk0sh/FastHub/issues/new 로 간 후 새로운 티켓을 만드세요. 티켓을 만들기 전 먼저 전에 있었던 티켓 중 중복되는 것이 없는지 검색해주세요. 중복시 티켓은 바로 닫힙니다. 또는 앱 드로어 (화면 왼쪽 끝에서 오른쪽으로 드래그) 에 있는 오류 보고를 클릭하여 보고하셔도 됩니다.

+
기술적 문의는 이 앱의 개발자인 Kosh Sergani에게 해주시기 바랍니다. 본 번역이 FastHub 사용에 도움이 되셨기를 바랍니다. 감사합니다.
]]>
자주 하는 질문 (FAQ) @@ -443,19 +449,18 @@ 검색 기록 삭제 이전 구매 여부 복구 Fork한 Repo 포함하기 - 댓글이 너무 많아 페이지 매김을 할 수 없습니다. - 응답이 너무 많습니다.\n최대 API 응답수를 표시합니다. + 댓글이 너무 많아 페이지 매김을 할 수 없습니다 + 응답이 너무 많음\nAPI가 허용하는 최대 응답수 표시 중 이미지 로딩 중단하기 - 모바일 데이터 사용중에 이미지 로딩 사용 중지 - 이 Issue는 GitHub의 FastHub Repo에 제출됩니다. + 모바일 데이터 사용 중 이미지 로딩 비활성화 + 이 Issue는 GitHub의 FastHub Repo에 제출됩니다 차단 차단 취소 유저 차단됨 유저 차단 취소됨 이미지 캐시 지우기 - 앱을 재시작 해주세요. + 앱을 재시작 해주세요 메뉴 변경된 파일 없음 피드백 보내기 -
From fcd945a343cd10541098e4d621a6c8c0b1d33526 Mon Sep 17 00:00:00 2001 From: Minsuk Eom Date: Mon, 19 Aug 2019 22:56:40 +0900 Subject: [PATCH 06/59] Correct some bad grammars --- app/src/main/res/values-ko/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index e8bd1b92..81c639a9 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -436,7 +436,7 @@
• 제가 엔터프라이즈 계정으로 로그인했는데 Enterprise GitHub 외의 다른 것들은 볼 수 없나요?

결론부터 말하자면 불가능합니다. 본 앱은 여러분이 다른 것들을 볼 수 있게 해 주고 있지만, 기술적 한계로 크게 도움을 드릴 수는 없습니다. 대부분의 경우에는 여러분의 로그인 계정이 GitHub 서버에 상주하고 있기 때문입니다. 그러나 소수의 경우에는 여러분의 OAuth 토큰이 다른 활동을 하게 해줄 수 있습니다.

-
• Issues/PR 를 수정 하는데 문제가 있습니다.
+
• Issues/PR을 수정하는 데 문제가 있습니다.

공개 Organization 리포지토리를 수정하면, 여러분의 Organization에게 문의하여 Fasthub 권환을 받거나 최초 로그인시 엑세스 토큰으로 로그인하세요.

• 앱을 사용하는 데 문제를 발견했어요! / 혹시 이러한 기능을 추가해주실 수 있나요?
From 5ed249f5f6a0157f8b99ea23b874d20c2bc77fd8 Mon Sep 17 00:00:00 2001 From: lwinmoehain <43680846+lwinmoehein@users.noreply.github.com> Date: Thu, 29 Aug 2019 09:23:04 +0630 Subject: [PATCH 07/59] Update greetings.yml --- .github/workflows/greetings.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/greetings.yml diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml new file mode 100644 index 00000000..f9daf71d --- /dev/null +++ b/.github/workflows/greetings.yml @@ -0,0 +1,13 @@ +name: Greetings + +on: [pull_request, issues] + +jobs: + greeting: + runs-on: ubuntu-latest + steps: + - uses: actions/first-interaction@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-message: 'Horray🎉🎉,you've made you first issue, Thanks for contributing❤️'' first issue' + pr-message: 'Horray🎉🎉,you've made you first issue, Thanks for contributing❤️'' first pr' From e4fe5aefdd5313eafd43a77ac490ece6ff7b7794 Mon Sep 17 00:00:00 2001 From: Hugo Posnic Date: Wed, 4 Sep 2019 14:25:19 +0200 Subject: [PATCH 08/59] Fix a spelling mistake in french translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace "À propros" by "À propos". --- app/src/main/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b55614a4..9a9513ff 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -223,7 +223,7 @@ Feedback Signaler un bug Vous avez rencontrez un bug ? Signalez-le ici - À propros + À propos Notifications Éteindre Utilisateur non autorisé From d0e8fdb0f7235ce173b8d7ff2070918d1738b55f Mon Sep 17 00:00:00 2001 From: Kosh Sergani Date: Sun, 29 Sep 2019 23:00:29 +0200 Subject: [PATCH 09/59] Create FUNDING.yml --- .github/FUNDING.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..b51993f9 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: FastHub +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom:['paypal.me/imkosh'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From eb13021b9a45ac1ae29815b48247647005a661bd Mon Sep 17 00:00:00 2001 From: Kosh Sergani Date: Sun, 29 Sep 2019 23:01:23 +0200 Subject: [PATCH 10/59] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index b51993f9..1156de71 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username -custom:['paypal.me/imkosh'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +custom: https://paypal.me/imkosh From 6cd82b8ff51464720db33203b712f9bced1c547f Mon Sep 17 00:00:00 2001 From: Manuel Tassi <42747216+Mannivu@users.noreply.github.com> Date: Mon, 7 Oct 2019 13:23:25 +0200 Subject: [PATCH 11/59] Update italian translations Fixed some typos and grammar in italian translation. --- app/src/main/res/values-it/strings.xml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index dfe8641a..4cc0c7ee 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -193,7 +193,7 @@ Aggiungi Fatto Home - Crea Milestone + Crea milestone Errore durante la creazione della milestone Scadenza Nessun assegnatario @@ -212,14 +212,14 @@ Ripristina Backup Backup eseguito con successo! - Seleziona Backup da Ripristinare - Permesso Non Concesso. + Seleziona Backup da ripristinare + Permesso non concesso. Ultimo aggiornamento: %s Ora - Scartare qualsiasi modifica non salvata? + Scartare le modifiche non salvate? Privato - Usa gli avatar Squadrati rotondi invece di quelli circolari - Avatar Squadrati + Usa avatar squadrati arrotondati invece di quelli circolari + Avatar squadrati Valuta questa app Autore Clona su GitHub @@ -271,15 +271,15 @@ Nessun contributore Nessuna pubblicazione Nessun evento - Nessuna pull requests + Nessuna pull request Nessun risultato Per favore accetta i permessi per permettere a FastHub di salvare i file nel tuo dispositivo ed essere in grado di visualizzarli - Gist Pubblici - Abilita Pubblicità + Gist pubblici + Attiva pubblicità Nessun problema Nessuna notifica non letta. - I miei Gists + I miei Gist Changelog Premi per aprire la lista delle notifiche o fai uno swipe per chiudere Pressione prolungata per navigare ovunque dalla schermata principale @@ -296,8 +296,8 @@ Membri Nessun membro Nessun team - Nessuna organizzazione - Impossibile trovare le tue Organizzazioni? + Nessuna Organizzazione + Non riesci a trovare le tue Organizzazioni? Segna come letto Animazioni Abilita animazioni popup @@ -317,7 +317,7 @@ Sei aggiornato! Una nuova versione è disponibile. Il campo di ricerca non può essere vuoto - Pressione prolungata per creare un problema al volo + Pressione prolungata per segnalare velocemente un problema Questa pull request non può essere unita rivisto chiusa la loro rivisitazione From 4ff4acf36133628be6f1dfda5d32c8c741869e83 Mon Sep 17 00:00:00 2001 From: Abhishek AN Date: Fri, 11 Oct 2019 23:04:56 +0530 Subject: [PATCH 12/59] README: Remove obsolete Google+ links Signed-off-by: Abhishek AN --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b29c5d11..6d76bd8d 100644 --- a/README.md +++ b/README.md @@ -190,10 +190,10 @@ Read the [**contribution guide**](.github/CONTRIBUTING.md) for more detailed inf ## FastHub Logo **FastHub** logo is designed by **Cookicons**. -[Google+](https://plus.google.com/+CookiconsDesign) | [Twitter](https://twitter.com/mcookie) +[Twitter](https://twitter.com/mcookie) Designer website [Cookicons](https://cookicons.co/). **OLD FastHub** logo was designed by **Kevin Aguilar**. -[Google+](https://plus.google.com/+KevinAguilarC) | [Twitter](https://twitter.com/kevttob) +[Twitter](https://twitter.com/kevttob) Designer at [Kevin Aguilar](http://kevaguilar.com/). Laus Deo Semper From e11abe938aa43f579c4d77a104167a11d11e9116 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 07:01:32 +0100 Subject: [PATCH 13/59] make project buildable --- app/build.gradle | 28 +- .../com/fastaccess/helper/TestHelper.java | 77 ---- .../ui/modules/login/LoginActivityTest.java | 54 --- .../login/LoginChooserActivityTest.java | 39 -- .../ui/modules/main/MainActivityTest.java | 69 --- app/src/main/AndroidManifest.xml | 162 +++---- .../main/graphql/github/PinnedRepos.graphql | 4 +- .../main/graphql/github/RepoProject.graphql | 8 +- .../model/AbstractFastHubNotification.java | 11 +- .../dao/model/AbstractNotificationQueue.java | 3 +- .../dao/timeline/PullRequestReviewModel.java | 169 ------- .../timeline/PullRequestTimelineModel.java | 85 ---- .../viewholder/PullRequestEventViewHolder.kt | 414 ------------------ app/src/main/res/values-es/strings.xml | 6 +- app/src/main/res/values-fr/strings.xml | 6 +- app/src/main/res/values-it/strings.xml | 15 +- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values/dimens.xml | 2 +- .../fastaccess/login/LoginPresenterTest.java | 40 -- build.gradle | 13 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 21 files changed, 128 insertions(+), 1085 deletions(-) delete mode 100644 app/src/androidTest/java/com/fastaccess/helper/TestHelper.java delete mode 100644 app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginActivityTest.java delete mode 100644 app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginChooserActivityTest.java delete mode 100644 app/src/androidTest/java/com/fastaccess/ui/modules/main/MainActivityTest.java delete mode 100644 app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestReviewModel.java delete mode 100644 app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestTimelineModel.java delete mode 100644 app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestEventViewHolder.kt delete mode 100644 app/src/test/java/com/fastaccess/login/LoginPresenterTest.java diff --git a/app/build.gradle b/app/build.gradle index 954282a8..7d66e313 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,9 @@ apply plugin: 'com.android.application' -apply plugin: 'com.apollographql.android' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' +apply plugin: 'com.apollographql.android' apply plugin: 'com.novoda.build-properties' -apply plugin: 'jacoco-android' apply plugin: 'io.fabric' buildProperties { @@ -25,7 +25,6 @@ android { } } compileSdkVersion 27 - buildToolsVersion '27.0.3' defaultConfig { applicationId "com.fastaccess.github" minSdkVersion 21 @@ -90,7 +89,8 @@ android { } configurations { - all*.exclude module: 'annotations' + all*.exclude module: 'annotation' + all*.exclude group: 'org.jetbrains', module: 'annotations-java5' } packagingOptions { exclude 'META-INF/rxjava.properties' } @@ -161,31 +161,25 @@ dependencies { implementation('com.github.b3er.rxfirebase:firebase-database:11.2.0') { transitive = false } implementation('com.crashlytics.sdk.android:crashlytics:2.9.0@aar') { transitive = true } implementation "com.github.miguelbcr:RxBillingService:0.0.3" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:${kotlin_version}" - implementation 'org.jsoup:jsoup:1.10.3' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}" + implementation 'org.jsoup:jsoup:1.12.1' implementation "com.evernote:android-state:${state_version}" implementation "petrov.kristiyan:colorpicker-library:1.1.4" - implementation 'com.apollographql.apollo:apollo-rx2-support:0.4.1' + implementation 'com.apollographql.apollo:apollo-rx2-support:1.2.2' + implementation("com.apollographql.apollo:apollo-runtime:1.2.2") implementation 'com.jaredrummler:android-device-names:1.1.5' implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.1.0' implementation 'com.airbnb.android:lottie:2.2.5' implementation 'com.firebase:firebase-jobdispatcher:0.8.2' + compileOnly "org.projectlombok:lombok:${lombokVersion}" + kapt "org.projectlombok:lombok:${lombokVersion}" kapt "com.evernote:android-state-processor:${state_version}" kapt "com.jakewharton:butterknife-compiler:${butterKnifeVersion}" kapt 'com.github.matthiasrobbers:shortbread-compiler:1.0.1' kapt "io.requery:requery-processor:${requery}" -// testImplementation "net.grandcentrix.thirtyinch:thirtyinch-test:$thirtyinchVersion" - testImplementation "junit:junit:${junitVersion}" - testImplementation "org.mockito:mockito-core:${mockitoVersion}" - testImplementation "org.assertj:assertj-core:${assertjVersion}" - androidTestImplementation "com.android.support:support-annotations:${supportVersion}" - androidTestImplementation "org.mockito:mockito-core:${mockitoVersion}" - androidTestImplementation 'com.android.support.test:runner:1.0.1' - androidTestImplementation 'com.android.support.test:rules:1.0.1' - androidTestImplementation "com.android.support.test.espresso:espresso-intents:${espresseVersion}" - androidTestImplementation "com.android.support.test.espresso:espresso-core:${espresseVersion}" + } apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/androidTest/java/com/fastaccess/helper/TestHelper.java b/app/src/androidTest/java/com/fastaccess/helper/TestHelper.java deleted file mode 100644 index 1bf730f6..00000000 --- a/app/src/androidTest/java/com/fastaccess/helper/TestHelper.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.fastaccess.helper; - -import android.support.annotation.IntRange; -import android.support.design.widget.TextInputLayout; -import android.support.test.espresso.UiController; -import android.support.test.espresso.ViewAction; -import android.view.View; - -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeMatcher; - -import it.sephiroth.android.library.bottomnavigation.BottomNavigation; - -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; - -/** - * Created by Kosh on 05 May 2017, 9:23 PM - */ - -public class TestHelper { - - public static Matcher textInputLayoutHasHint(final String expectedErrorText) { - return new TypeSafeMatcher() { - @Override public boolean matchesSafely(View view) { - if (!(view instanceof TextInputLayout)) { - return false; - } - CharSequence error = ((TextInputLayout) view).getHint(); - return error != null && expectedErrorText.equals(error.toString()); - } - - @Override public void describeTo(Description description) {} - }; - } - - public static Matcher textInputLayoutHasError(final String expectedErrorText) { - return new TypeSafeMatcher() { - @Override public boolean matchesSafely(View view) { - if (!(view instanceof TextInputLayout)) { - return false; - } - CharSequence error = ((TextInputLayout) view).getError(); - return error != null && expectedErrorText.equals(error.toString()); - } - - @Override public void describeTo(Description description) {} - }; - } - - public static Matcher bottomNavSelection(@IntRange(from = 0, to = 3) final int position) { - return new TypeSafeMatcher() { - @Override public boolean matchesSafely(View view) { - return view instanceof BottomNavigation && position == ((BottomNavigation) view).getSelectedIndex(); - } - - @Override public void describeTo(Description description) {} - }; - } - - public static ViewAction bottomNavAction(@IntRange(from = 0, to = 3) final int index) { - return new ViewAction() { - - @Override public Matcher getConstraints() { - return isAssignableFrom(BottomNavigation.class); - } - - @Override public String getDescription() { - return "BottomNavigation"; - } - - @Override public void perform(UiController uiController, View view) { - ((BottomNavigation) view).setSelectedIndex(index, false); - } - }; - } -} diff --git a/app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginActivityTest.java b/app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginActivityTest.java deleted file mode 100644 index e10fd093..00000000 --- a/app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginActivityTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.fastaccess.ui.modules.login; - - -import android.support.test.filters.LargeTest; -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; - -import com.fastaccess.R; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static com.fastaccess.helper.TestHelper.textInputLayoutHasError; -import static org.hamcrest.core.IsNot.not; - -@RunWith(AndroidJUnit4.class) @LargeTest -public class LoginActivityTest { - - @Rule public ActivityTestRule testRule = new ActivityTestRule<>(LoginActivity.class); - - @Test public void successLoginClickSuccessTest() { - String username = "username"; - String password = "password"; - onView(withId(R.id.usernameEditText)).perform(typeText(username), closeSoftKeyboard()); - onView(withId(R.id.passwordEditText)).perform(typeText(password), closeSoftKeyboard()); - onView(withId(R.id.login)).perform(click()); - onView(withId(R.id.progress)).check(matches(isDisplayed())); - } - - @Test public void usernameErrorTest() { - String password = "password"; - onView(withId(R.id.passwordEditText)).perform(typeText(password), closeSoftKeyboard()); - onView(withId(R.id.login)).perform(click()); - onView(withId(R.id.progress)).check(matches(not(isDisplayed()))); - onView(withId(R.id.username)).check(matches(textInputLayoutHasError(testRule.getActivity().getString(R.string.required_field)))); - } - - @Test public void passwordErrorTest() { - String username = "username"; - onView(withId(R.id.usernameEditText)).perform(typeText(username), closeSoftKeyboard()); - onView(withId(R.id.login)).perform(click()); - onView(withId(R.id.progress)).check(matches(not(isDisplayed()))); - onView(withId(R.id.password)).check(matches(textInputLayoutHasError(testRule.getActivity().getString(R.string.required_field)))); - } - -} \ No newline at end of file diff --git a/app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginChooserActivityTest.java b/app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginChooserActivityTest.java deleted file mode 100644 index 940fb3d8..00000000 --- a/app/src/androidTest/java/com/fastaccess/ui/modules/login/LoginChooserActivityTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.fastaccess.ui.modules.login; - - -import android.support.test.espresso.intent.rule.IntentsTestRule; -import android.support.test.filters.LargeTest; -import android.support.test.runner.AndroidJUnit4; - -import com.fastaccess.R; -import com.fastaccess.ui.modules.login.chooser.LoginChooserActivity; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.intent.Intents.intended; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static com.fastaccess.helper.TestHelper.textInputLayoutHasHint; - -@RunWith(AndroidJUnit4.class) @LargeTest -public class LoginChooserActivityTest { - - @Rule public IntentsTestRule intentTestRule = new IntentsTestRule<>(LoginChooserActivity.class); - - @Test public void basicAuthButtonTest() { - onView(withId(R.id.basicAuth)).perform(click()); - intended(hasComponent(LoginActivity.class.getName())); - onView(withId(R.id.password)).check(matches(textInputLayoutHasHint(intentTestRule.getActivity().getString(R.string.password)))); - } - - @Test public void accessTokenButtonTest() { - onView(withId(R.id.accessToken)).perform(click()); - intended(hasComponent(LoginActivity.class.getName())); - onView(withId(R.id.password)).check(matches(textInputLayoutHasHint(intentTestRule.getActivity().getString(R.string.access_token)))); - } -} \ No newline at end of file diff --git a/app/src/androidTest/java/com/fastaccess/ui/modules/main/MainActivityTest.java b/app/src/androidTest/java/com/fastaccess/ui/modules/main/MainActivityTest.java deleted file mode 100644 index c51e7b5a..00000000 --- a/app/src/androidTest/java/com/fastaccess/ui/modules/main/MainActivityTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.fastaccess.ui.modules.main; - -import android.support.test.espresso.intent.rule.IntentsTestRule; - -import com.fastaccess.R; -import com.fastaccess.helper.AppHelper; -import com.fastaccess.ui.modules.feeds.FeedsFragment; -import com.fastaccess.ui.modules.login.chooser.LoginChooserActivity; -import com.fastaccess.ui.modules.main.issues.pager.MyIssuesPagerFragment; -import com.fastaccess.ui.modules.main.pullrequests.pager.MyPullsPagerFragment; -import com.fastaccess.ui.modules.notification.NotificationActivity; -import com.fastaccess.ui.modules.search.SearchActivity; - -import org.junit.Rule; -import org.junit.Test; - -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.intent.Intents.intended; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static com.fastaccess.helper.TestHelper.bottomNavAction; -import static com.fastaccess.helper.TestHelper.bottomNavSelection; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -/** - * Created by Kosh on 06 May 2017, 2:11 AM - */ - -public class MainActivityTest { - @Rule public IntentsTestRule testRule = new IntentsTestRule<>(MainActivity.class); - - @Test public void noUserTest() { - assertEquals(testRule.getActivity().isLoggedIn(), false); - intended(hasComponent(LoginChooserActivity.class.getName())); - } - - @Test public void onInitTest() { - assertEquals(testRule.getActivity().isLoggedIn(), true); - onView(withId(R.id.bottomNavigation)).check(matches(bottomNavSelection(0))); - assertNotNull(AppHelper.getFragmentByTag(testRule.getActivity().getSupportFragmentManager(), FeedsFragment.TAG)); - } - - @Test public void onSelectIssuesTabTest() { - assertEquals(testRule.getActivity().isLoggedIn(), true); - onView(withId(R.id.bottomNavigation)).perform(bottomNavAction(1)) - .check(matches(bottomNavSelection(1))); - assertNotNull(AppHelper.getFragmentByTag(testRule.getActivity().getSupportFragmentManager(), MyIssuesPagerFragment.TAG)); - } - - @Test public void onSelectPullRequestsTabTest() { - assertEquals(testRule.getActivity().isLoggedIn(), true); - onView(withId(R.id.bottomNavigation)).perform(bottomNavAction(2)) - .check(matches(bottomNavSelection(2))); - assertNotNull(AppHelper.getFragmentByTag(testRule.getActivity().getSupportFragmentManager(), MyPullsPagerFragment.TAG)); - } - - @Test public void startNotificationsIntentTest() { - onView(withId(R.id.notifications)).perform(click()); - intended(hasComponent(NotificationActivity.class.getName())); - } - - @Test public void startSearchIntentTest() { - onView(withId(R.id.search)).perform(click()); - intended(hasComponent(SearchActivity.class.getName())); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cc5ddefb..b0f438f5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,22 +1,18 @@ - + - - - - - - + + + + + + - - + tools:node="remove" /> + android:theme="@style/ThemeTranslucent" /> - + - + - + - - + + + android:scheme="fasthub" /> + android:theme="@style/LoginTheme" /> + android:value=".ui.modules.main.MainActivity" /> + android:value=".ui.modules.main.MainActivity" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:label="@string/create_issue" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:label="@string/viewer" /> + android:windowSoftInputMode="adjustResize" /> + android:label="@string/create_gist" /> + android:value=".ui.modules.main.MainActivity" /> + android:value=".ui.modules.main.MainActivity" /> + android:value=".ui.modules.main.MainActivity" /> + android:theme="@style/AppTheme.AboutActivity.Light" /> + android:label="@string/pinned" /> - + android:label="@string/public_gists" /> + + android:value=".ui.modules.repos.RepoPagerActivity" /> - - - + + + + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:configChanges="keyboard|orientation|screenSize" /> + android:configChanges="keyboard|orientation|screenSize" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:value=".ui.modules.main.MainActivity" /> - + + android:label="@string/theme_title" /> + android:theme="@style/ThemeTranslucent" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:windowSoftInputMode="stateAlwaysHidden" /> + android:windowSoftInputMode="adjustResize" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:value=".ui.modules.repos.RepoPagerActivity" /> + android:value=".ui.modules.user.UserPagerActivity" /> - + + android:configChanges="keyboard|orientation|screenSize" /> - + - + + android:scheme="http" /> + android:scheme="https" /> + android:scheme="http" /> + android:scheme="https" /> + android:scheme="https" /> - + android:scheme="https" /> + - - + + - + - + - + @@ -305,25 +301,29 @@ android:name=".provider.tasks.notification.NotificationSchedulerJobTask" android:exported="false"> - + - - - - - + + + + + - + + android:value="6ed82b6e0756853d7d782a3f547f84f9ecba217e" /> + + \ No newline at end of file diff --git a/app/src/main/graphql/github/PinnedRepos.graphql b/app/src/main/graphql/github/PinnedRepos.graphql index cd91505c..cfa1a23c 100644 --- a/app/src/main/graphql/github/PinnedRepos.graphql +++ b/app/src/main/graphql/github/PinnedRepos.graphql @@ -5,10 +5,10 @@ query getPinnedRepos($login: String!) { node { name url - issues(states: OPEN) { + issues(states: [OPEN]) { totalCount } - pullRequests(states: OPEN) { + pullRequests(states: [OPEN]) { totalCount } stargazers { diff --git a/app/src/main/graphql/github/RepoProject.graphql b/app/src/main/graphql/github/RepoProject.graphql index f7c41117..9dcdc8bc 100644 --- a/app/src/main/graphql/github/RepoProject.graphql +++ b/app/src/main/graphql/github/RepoProject.graphql @@ -1,6 +1,6 @@ query repoProjectsOpen($owner: String!, $name: String!, $page: String) { repository(owner: $owner, name: $name) { - projects(first: 30, states: OPEN, after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { + projects(first: 30, states: [OPEN], after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { totalCount edges { cursor @@ -27,7 +27,7 @@ repository(owner: $owner, name: $name) { } query repoProjectsClosed($owner: String!, $name: String!, $page: String) { repository(owner: $owner, name: $name) { - projects(first: 30, states: CLOSED, after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { + projects(first: 30, states: [CLOSED], after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { totalCount edges { cursor @@ -55,7 +55,7 @@ repository(owner: $owner, name: $name) { query orgProjectsOpen($owner: String!, $page: String) { organization(login: $owner) { - projects(first: 30, states: OPEN, after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { + projects(first: 30, states: [OPEN], after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { totalCount edges { cursor @@ -82,7 +82,7 @@ organization(login: $owner) { } query orgProjectsClosed($owner: String!, $page: String) { organization(login: $owner) { - projects(first: 30, states: CLOSED, after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { + projects(first: 30, states: [CLOSED], after: $page, orderBy: {field: CREATED_AT, direction: DESC}) { totalCount edges { cursor diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java index 08de87aa..29547a0f 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java @@ -2,14 +2,13 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import com.fastaccess.App; import java.util.Date; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - import io.reactivex.Observable; import io.requery.Column; import io.requery.Entity; @@ -33,11 +32,11 @@ import lombok.NoArgsConstructor; @io.requery.Nullable String title; @io.requery.Nullable NotificationType type; - public static void update(@Nonnull FastHubNotification notification) { + public static void update(@NonNull FastHubNotification notification) { App.getInstance().getDataStore().toBlocking().update(notification); } - public static void save(@Nonnull FastHubNotification notification) { + public static void save(@NonNull FastHubNotification notification) { App.getInstance().getDataStore().toBlocking().insert(notification); } @@ -51,7 +50,7 @@ import lombok.NoArgsConstructor; .firstOrNull(); } - @Nonnull public static Observable getNotifications() { + @NonNull public static Observable getNotifications() { return App.getInstance().getDataStore() .select(FastHubNotification.class) .orderBy(FastHubNotification.DATE.desc()) diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java index 4a24acda..664e1f92 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java @@ -2,6 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; +import android.support.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.helper.RxHelper; @@ -9,8 +10,6 @@ import com.fastaccess.helper.RxHelper; import java.util.Date; import java.util.List; -import javax.annotation.Nullable; - import io.reactivex.Observable; import io.requery.BlockingEntityStore; import io.requery.Entity; diff --git a/app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestReviewModel.java b/app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestReviewModel.java deleted file mode 100644 index f260ea42..00000000 --- a/app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestReviewModel.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.fastaccess.data.dao.timeline; - -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; - -import com.fastaccess.data.dao.ReactionsModel; -import com.fastaccess.helper.Logger; -import com.fastaccess.helper.ParseDateFormat; - -import java.util.ArrayList; -import java.util.List; - -import github.PullRequestTimelineQuery; -import github.type.PullRequestReviewState; - -/** - * Created by kosh on 20/08/2017. - */ - -public class PullRequestReviewModel { - private PullRequestTimelineQuery.AsReviewDismissedEvent reviewDismissedEvent; - private PullRequestTimelineQuery.AsReviewRequestedEvent reviewRequestedEvent; - private PullRequestTimelineQuery.AsReviewRequestRemovedEvent reviewRequestRemovedEvent; - private PullRequestTimelineQuery.Node2 node; - private List reaction; - private List comments; - private String id; - private String url; - private PullRequestTimelineQuery.Author2 author; - private String bodyHTML; - private String createdAt; - private PullRequestReviewState state; - - @Nullable public static PullRequestReviewModel build(@NonNull PullRequestTimelineQuery.Node node) { - PullRequestReviewModel model = new PullRequestReviewModel(); - if (node.asReviewRequestRemovedEvent() != null) { - model.reviewRequestRemovedEvent = node.asReviewRequestRemovedEvent(); - } else if (node.asReviewDismissedEvent() != null) { - model.reviewDismissedEvent = node.asReviewDismissedEvent(); - } else if (node.asReviewRequestedEvent() != null) { - model.reviewRequestedEvent = node.asReviewRequestedEvent(); - } else { - PullRequestTimelineQuery.AsPullRequestReview pullRequestReview = node.asPullRequestReview(); - if (pullRequestReview != null) { - model.state = pullRequestReview.state(); - model.url = pullRequestReview.url().toString(); - model.author = pullRequestReview.author(); - model.bodyHTML = pullRequestReview.bodyHTML().toString(); - model.createdAt = ParseDateFormat.getTimeAgo(pullRequestReview.createdAt().toString()).toString(); - model.id = pullRequestReview.id(); - model.url = pullRequestReview.url().toString(); - List edges = pullRequestReview.comments().edges(); - if (edges != null && !edges.isEmpty()) { - List comments = new ArrayList<>(); - for (PullRequestTimelineQuery.Edge2 edge : edges) { - PullRequestTimelineQuery.Node2 node2 = edge.node(); - if (node2 != null) { - PullRequestReviewModel comment = new PullRequestReviewModel(); - comment.node = node2; - comment.reaction = ReactionsModel.getReaction(node2.reactionGroups()); - comments.add(comment); - } - } - Logger.e(comments.size()); - model.comments = comments; - } - } else { - return null; - } - } - return model; - } - - public PullRequestTimelineQuery.AsReviewDismissedEvent getReviewDismissedEvent() { - return reviewDismissedEvent; - } - - public void setReviewDismissedEvent(PullRequestTimelineQuery.AsReviewDismissedEvent reviewDismissedEvent) { - this.reviewDismissedEvent = reviewDismissedEvent; - } - - public PullRequestTimelineQuery.AsReviewRequestedEvent getReviewRequestedEvent() { - return reviewRequestedEvent; - } - - public void setReviewRequestedEvent(PullRequestTimelineQuery.AsReviewRequestedEvent reviewRequestedEvent) { - this.reviewRequestedEvent = reviewRequestedEvent; - } - - public PullRequestTimelineQuery.AsReviewRequestRemovedEvent getReviewRequestRemovedEvent() { - return reviewRequestRemovedEvent; - } - - public void setReviewRequestRemovedEvent(PullRequestTimelineQuery.AsReviewRequestRemovedEvent reviewRequestRemovedEvent) { - this.reviewRequestRemovedEvent = reviewRequestRemovedEvent; - } - - public PullRequestTimelineQuery.Node2 getNode() { - return node; - } - - public void setNode(PullRequestTimelineQuery.Node2 node) { - this.node = node; - } - - public List getReaction() { - return reaction; - } - - public void setReaction(List reaction) { - this.reaction = reaction; - } - - public List getComments() { - return comments; - } - - public void setComments(List comments) { - this.comments = comments; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public PullRequestTimelineQuery.Author2 getAuthor() { - return author; - } - - public void setAuthor(PullRequestTimelineQuery.Author2 author) { - this.author = author; - } - - public String getBodyHTML() { - return bodyHTML; - } - - public void setBodyHTML(String bodyHTML) { - this.bodyHTML = bodyHTML; - } - - public String getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(String createdAt) { - this.createdAt = createdAt; - } - - public PullRequestReviewState getState() { - return state; - } - - public void setState(PullRequestReviewState state) { - this.state = state; - } -} diff --git a/app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestTimelineModel.java b/app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestTimelineModel.java deleted file mode 100644 index 0cd8bd06..00000000 --- a/app/src/main/java/com/fastaccess/data/dao/timeline/PullRequestTimelineModel.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.fastaccess.data.dao.timeline; - -import com.fastaccess.data.dao.ReactionsModel; -import com.fastaccess.data.dao.model.PullRequest; - -import java.util.List; - -import lombok.Getter; -import lombok.Setter; -import github.PullRequestTimelineQuery; - -/** - * Created by kosh on 02/08/2017. - */ - -@Getter @Setter public class PullRequestTimelineModel { - - public static final int HEADER = 1; - public static final int EVENT = 2; - public static final int COMMENT = 3; - public static final int STATUS = 4; - public static final int REVIEW = 5; - public static final int COMMIT_COMMENTS = 6; - public PullRequestTimelineQuery.Node node; - public PullRequest pullRequest; - public PullRequestTimelineQuery.Status status; - public List reactions; - public boolean isMergeable; - public PullRequestCommitModel commitThread; - public PullRequestReviewModel reviewModel; - - public PullRequestTimelineModel(PullRequest pullRequest) { - this.pullRequest = pullRequest; - } - - public PullRequestTimelineModel(PullRequestTimelineQuery.Node node) { - this.node = node; - if (this.node.asCommitCommentThread() != null) { - - } else { - if (node.asPullRequestReview() != null || node.asReviewDismissedEvent() != null - || node.asReviewRequestedEvent() != null || node.asReviewRequestRemovedEvent() != null) { - reviewModel = PullRequestReviewModel.build(node); - } - } - } - - public PullRequestTimelineModel(PullRequestTimelineQuery.Status status, boolean isMergeable) { - this.status = status; - this.isMergeable = isMergeable; - } - - public int getType() { - if (pullRequest != null) return HEADER; - if (node != null) { - if (node.asAssignedEvent() != null || node.asClosedEvent() != null - || node.asDemilestonedEvent() != null || node.asHeadRefDeletedEvent() != null - || node.asLabeledEvent() != null || node.asLockedEvent() != null - || node.asMergedEvent() != null || node.asMilestonedEvent() != null - || node.asReferencedEvent() != null || node.asRenamedTitleEvent() != null - || node.asReopenedEvent() != null || node.asUnassignedEvent() != null - || node.asUnlabeledEvent() != null || node.asUnlockedEvent() != null - || node.asCommit() != null || node.asHeadRefRestoredEvent() != null) { - return EVENT; - } else if (node.asIssueComment() != null) { - if (reactions == null) { - //noinspection ConstantConditions - setReactions(ReactionsModel.getReaction2(node.asIssueComment().reactionGroups())); - } - return COMMENT; - } else if (reviewModel != null) { - return REVIEW; - } else if (commitThread != null) { - return COMMIT_COMMENTS; - } - } else if (status != null) { - return STATUS; - } - return 0; - } - - @Override public String toString() { - return String.valueOf(getType()); - } -} diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestEventViewHolder.kt b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestEventViewHolder.kt deleted file mode 100644 index 2d114306..00000000 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestEventViewHolder.kt +++ /dev/null @@ -1,414 +0,0 @@ -package com.fastaccess.ui.adapter.viewholder - -import android.annotation.SuppressLint -import android.graphics.Color -import android.support.v4.content.ContextCompat -import android.text.style.BackgroundColorSpan -import android.view.View -import android.view.ViewGroup -import butterknife.BindView -import com.fastaccess.R -import com.fastaccess.data.dao.timeline.PullRequestTimelineModel -import com.fastaccess.helper.ParseDateFormat -import com.fastaccess.helper.PrefGetter -import com.fastaccess.helper.ViewHelper -import com.fastaccess.provider.scheme.LinkParserHelper -import com.fastaccess.provider.timeline.HtmlHelper -import com.fastaccess.ui.widgets.AvatarLayout -import com.fastaccess.ui.widgets.FontTextView -import com.fastaccess.ui.widgets.ForegroundImageView -import com.fastaccess.ui.widgets.SpannableBuilder -import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter -import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder -import com.zzhoujay.markdown.style.CodeSpan -import github.PullRequestTimelineQuery -import github.type.StatusState - -/** - * Created by kosh on 03/08/2017. - */ - -class PullRequestEventViewHolder private constructor(view: View, adapter: BaseRecyclerAdapter<*, *, *>) : - BaseViewHolder(view, adapter) { - - @BindView(R.id.stateImage) lateinit var stateImage: ForegroundImageView - @BindView(R.id.avatarLayout) lateinit var avatarLayout: AvatarLayout - @BindView(R.id.stateText) lateinit var stateText: FontTextView - @BindView(R.id.commitStatus) lateinit var commitStatus: ForegroundImageView - - override fun bind(t: PullRequestTimelineModel) { - val node = t.node - commitStatus.visibility = View.GONE - if (node != null) { - when { - node.asAssignedEvent() != null -> assignedEvent(node.asAssignedEvent()!!) - node.asBaseRefForcePushedEvent() != null -> forcePushEvent(node.asBaseRefForcePushedEvent()!!) - node.asClosedEvent() != null -> closedEvent(node.asClosedEvent()!!) - node.asCommit() != null -> commitEvent(node.asCommit()!!) - node.asDemilestonedEvent() != null -> demilestonedEvent(node.asDemilestonedEvent()!!) - node.asDeployedEvent() != null -> deployedEvent(node.asDeployedEvent()!!) - node.asHeadRefDeletedEvent() != null -> refDeletedEvent(node.asHeadRefDeletedEvent()!!) - node.asHeadRefForcePushedEvent() != null -> refForPushedEvent(node.asHeadRefForcePushedEvent()!!) - node.asHeadRefRestoredEvent() != null -> headRefRestoredEvent(node.asHeadRefRestoredEvent()!!) - node.asLabeledEvent() != null -> labeledEvent(node.asLabeledEvent()!!) - node.asLockedEvent() != null -> lockEvent(node.asLockedEvent()!!) - node.asMergedEvent() != null -> mergedEvent(node.asMergedEvent()!!) - node.asMilestonedEvent() != null -> milestoneEvent(node.asMilestonedEvent()!!) - node.asReferencedEvent() != null -> referenceEvent(node.asReferencedEvent()!!) - node.asRenamedTitleEvent() != null -> renamedEvent(node.asRenamedTitleEvent()!!) - node.asReopenedEvent() != null -> reopenedEvent(node.asReopenedEvent()!!) - node.asUnassignedEvent() != null -> unassignedEvent(node.asUnassignedEvent()!!) - node.asUnlabeledEvent() != null -> unlabeledEvent(node.asUnlabeledEvent()!!) - node.asUnlockedEvent() != null -> unlockedEvent(node.asUnlockedEvent()!!) - else -> reset() - } - } else { - reset() - } - } - - private fun reset() { - stateText.text = "" - avatarLayout.setUrl(null, null, false, false) - } - - @SuppressLint("SetTextI18n") - private fun unlockedEvent(event: PullRequestTimelineQuery.AsUnlockedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("unlocked this conversation") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_lock) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun unlabeledEvent(event: PullRequestTimelineQuery.AsUnlabeledEvent) { - event.actor()?.let { - val color = Color.parseColor("#" + event.label().color()) - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("removed") - .append(" ") - .append(event.label().name(), CodeSpan(color, ViewHelper.generateTextColor(color), 5.0f)) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_label) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun unassignedEvent(event: PullRequestTimelineQuery.AsUnassignedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("unassigned") //TODO add "removed their assignment" for self - .append(" ") - .append(event.user()?.login()) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_profile) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun reopenedEvent(event: PullRequestTimelineQuery.AsReopenedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("reopened this") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_issue_opened) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun renamedEvent(event: PullRequestTimelineQuery.AsRenamedTitleEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("changed the title from").append(" ").append(event.previousTitle()) - .append(" ").append("to").append(" ").bold(event.currentTitle()) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_edit) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun referenceEvent(event: PullRequestTimelineQuery.AsReferencedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("referenced in") - .append(" ") - .append("from").append(" ") - .url(if (event.commit() != null) { - substring(event.commit()?.oid()?.toString()) - } else if (event.subject().asIssue() != null) { - if (event.isCrossRepository) { - "${event.commitRepository().nameWithOwner()} ${event.subject().asIssue()?.title()}#${event.subject().asIssue()?.number()}" - } else { - "${event.subject().asIssue()?.title()}#${event.subject().asIssue()?.number()}" - } - } else if (event.subject().asPullRequest() != null) { - if (event.isCrossRepository) { - "${event.commitRepository().nameWithOwner()} ${event.subject().asPullRequest()?.title()}" + - "#${event.subject().asPullRequest()?.number()}" - } else { - "${event.subject().asPullRequest()?.title()}#${event.subject().asPullRequest()?.number()}" - } - } else { - event.commitRepository().nameWithOwner() - }) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_push) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun milestoneEvent(event: PullRequestTimelineQuery.AsMilestonedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("added this to the") - .append(" ") - .append(event.milestoneTitle()).append(" ").append("milestone") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_milestone) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun mergedEvent(event: PullRequestTimelineQuery.AsMergedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("merged commit") - .append(" ") - .url(substring(event.commit()?.oid()?.toString())) - .append(" ") - .append("into") - .append(" ") - .append(event.actor()) - .append(":") - .append(event.mergeRefName(), BackgroundColorSpan(HtmlHelper.getWindowBackground(PrefGetter.getThemeType()))) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_merge) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun lockEvent(event: PullRequestTimelineQuery.AsLockedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("locked and limited conversation to collaborators") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_lock) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun labeledEvent(event: PullRequestTimelineQuery.AsLabeledEvent) { - event.actor()?.let { - val color = Color.parseColor("#" + event.label().color()) - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("labeled") - .append(" ") - .append(event.label().name(), CodeSpan(color, ViewHelper.generateTextColor(color), 5.0f)) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_label) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun headRefRestoredEvent(event: PullRequestTimelineQuery.AsHeadRefRestoredEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("restored the") - .append(" ") - .append(it.login()) - .append(":") - .append(event.pullRequest().headRefName(), BackgroundColorSpan(HtmlHelper.getWindowBackground(PrefGetter.getThemeType()))) - .append(" ") - .append("branch") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_push) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun refForPushedEvent(event: PullRequestTimelineQuery.AsHeadRefForcePushedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("reference force pushed to", BackgroundColorSpan(HtmlHelper.getWindowBackground(PrefGetter.getThemeType()))) - .append(" ") - .url(substring(event.afterCommit().oid().toString())) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_push) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun refDeletedEvent(event: PullRequestTimelineQuery.AsHeadRefDeletedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("deleted the") - .append(" ") - .append(it.login()) - .append(":") - .append(substring(event.headRefName()), BackgroundColorSpan(HtmlHelper.getWindowBackground(PrefGetter.getThemeType()))) - .append(" ") - .append("branch") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_trash) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun deployedEvent(event: PullRequestTimelineQuery.AsDeployedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("made a deployment", BackgroundColorSpan(HtmlHelper.getWindowBackground(PrefGetter.getThemeType()))) - .append(" ") - .append(event.deployment().latestStatus()?.state()?.name) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_push) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun demilestonedEvent(event: PullRequestTimelineQuery.AsDemilestonedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("removed this from the") - .append(" ") - .append(event.milestoneTitle()).append(" ").append("milestone") - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_milestone) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun commitEvent(event: PullRequestTimelineQuery.AsCommit) { - event.author()?.let { - stateText.text = SpannableBuilder.builder()//Review[k0shk0sh] We may want to suppress more then 3 or 4 commits. since it will clog the it - .bold(if (it.user() == null) it.name() else it.user()?.login()) - .append(" ") - .append("committed") - .append(" ") - .append(event.messageHeadline()) - .append(" ") - .url(substring(event.oid().toString())) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.committedDate().toString()))) - stateImage.setImageResource(R.drawable.ic_push) - avatarLayout.setUrl(it.user()?.avatarUrl().toString(), it.user()?.login(), false, - LinkParserHelper.isEnterprise(it.user()?.url().toString())) - event.status()?.let { - commitStatus.visibility = View.VISIBLE - val context = commitStatus.context - commitStatus.tintDrawableColor(when (it.state()) { - StatusState.ERROR -> ContextCompat.getColor(context, R.color.material_red_700) - StatusState.FAILURE -> ContextCompat.getColor(context, R.color.material_deep_orange_700) - StatusState.SUCCESS -> ContextCompat.getColor(context, R.color.material_green_700) - else -> ContextCompat.getColor(context, R.color.material_yellow_700) - }) - } - } - } - - private fun closedEvent(event: PullRequestTimelineQuery.AsClosedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("closed this in") - .append(" ") - .url(substring(event.commit()?.oid()?.toString())) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_merge) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun forcePushEvent(event: PullRequestTimelineQuery.AsBaseRefForcePushedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("force pushed to", BackgroundColorSpan(HtmlHelper.getWindowBackground(PrefGetter.getThemeType()))) - .append(" ") - .url(substring(event.afterCommit().oid().toString())) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_push) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun assignedEvent(event: PullRequestTimelineQuery.AsAssignedEvent) { - event.actor()?.let { - stateText.text = SpannableBuilder.builder() - .bold(it.login()) - .append(" ") - .append("assigned") //TODO add "self-assigned" for self - .append(" ") - .append(event.user()?.login()) - .append(" ") - .append(ParseDateFormat.getTimeAgo((event.createdAt().toString()))) - stateImage.setImageResource(R.drawable.ic_profile) - avatarLayout.setUrl(it.avatarUrl().toString(), it.login(), false, LinkParserHelper.isEnterprise(it.url().toString())) - } - } - - private fun substring(value: String?): String { - if (value == null) { - return "" - } - return if (value.length <= 7) value - else value.substring(0, 7) - } - - companion object { - fun newInstance(parent: ViewGroup, adapter: BaseRecyclerAdapter<*, *, *>): PullRequestEventViewHolder { - return PullRequestEventViewHolder(getView(parent, R.layout.issue_timeline_row_item), adapter) - } - } -} \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9a4d9780..635d5e0a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -450,8 +450,8 @@ Proyectos No hay proyectos No hay cartas - Agregado por %s %s - Muchas diferencias para mostrar. Por favor, ver via navegador web + Agregado por %s %s + Muchas diferencias para mostrar. Por favor, ver vía navegador web Proyecto POR FAVOR, LEER! @@ -475,7 +475,7 @@ Alternativamente, puedes iniciar sesión con un Access Token.

• Estoy teniendo problemas! / Quiero sugerirles cosas!
-

Ve a https://github.com/k0shk0sh/FastHub/issues/new y crea un nuevo issue por cualquier 'bug' o solicitud de característica. +

Ve a https://github.com/k0shk0sh/FastHub/issues/new y crea un nuevo issue por cualquier bug o solicitud de característica. Pedimos que busques por issues similares antes de abrir uno nuevo. Cualquier ticket duplicado será etiquetado y borrado inmediatamente.

• Cómo puedo obtener un PROMO CODE?
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b55614a4..9ded7815 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -330,7 +330,7 @@ Se connecter via l\'authentification simple Si vous êtes actuellement lié à une organisation et que vous ne pouvez pas la voir ici, veuillez suivre le lien ci-dessous.\nhttps://help.github.com/articles/about-third-party-application-restrictions\nPS: Vous pouvez - utiliser le token Access pour vous connecter, ce qui permettra à FastHub d'accéder à la liste de vos organisations\nVous pouvez + utiliser le token Access pour vous connecter, ce qui permettra à FastHub d\'accéder à la liste de vos organisations\nVous pouvez aussi ouvrir https://github.com/settings/applications et chercher FastHub. Ouvrez le puis faites défiler jusqu\'à Accès aux organisations et cliquez sur le bouton Accorder. Insérer @@ -422,7 +422,7 @@ Projets Aucun projet Aucune carte - Ajouté par %s %s + Ajouté par %s %s Trop de différences à afficher. Merci de les afficher via le navigateur Projet MERCI DE LIRE ! @@ -451,7 +451,7 @@ ]]>
FAQ Commentaires ajoutés avec succès - Vider l'historique de recherche + Vider l\'historique de recherche Restorer les achats Inclure les Forks Le commentaire est trop loin pour être trouvé diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index dfe8641a..34249a0e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1,5 +1,4 @@ - + Caricamento, attendi per favore… Azione Impostazioni @@ -432,27 +431,27 @@ Progetti Nessun Progetto Nessuna Card - Aggiunto da %s %s + Aggiunto da %s %s Troppe differenze da visualizzare. Perfavore, visualizzarli tramite un browser. Progetto PERFAVORE LEGGERE! • Perchè non posso visualizzare le mie Organizzazioni Private o Pubbliche? +
• Perché non posso visualizzare le mie Organizzazioni Private o Pubbliche?

Apri https://github.com/settings/applications e cerca FastHub, aprilo e scorri fino a Accesso organizzazione("Organization access") e cliccare il pulsante Permetti("Grant") Alternativamente puoi accedere utilizzando il Token di Accesso che faciliterà il processo..

-
• Ho provato ad accedere con un Token di accesso e una Password One-Time (OTP) senza alcun successo. Cosa c\'è di sbagliato?
+
• Ho provato ad accedere con un Token di accesso e una Password One-Time (OTP) senza alcun successo. Cosa c\è di sbagliato?

Non puoi accedere con il Token si accesso e con OTP tutto insieme. A causa del limitato tempo di vita do queste password, devi ripetere ogni procedura di accesso ogni qualche secondo.

• Perché non sono le mie Wiki nei repository privati ed Enterprise mostrati?
-

Mentre FastHub ritrae le pagine Wiki di GitHub, l'applicazione non è in grado di ottenere alcun token di sessione richiesto dai repository privati.

+

Mentre FastHub ritrae le pagine Wiki di GitHub, lapplicazione non è in grado di ottenere alcun token di sessione richiesto dai repository privati.

-
• Ho effettuato l'accesso al mio account aziendale. Perché non posso interagire con qualcosa di diverso dal mio Enterprise GitHub?
+
• Ho effettuato laccesso al mio account aziendale. Perché non posso interagire con qualcosa di diverso dal mio Enterprise GitHub?

Bene, logicamente, non puoi accedere ad altro che non sia la tua Enterprise. FastHub tenta di richiedere il maggior numero possibile di autorizzazioni, ma non può fare altro nella maggior parte dei casi, poiché le credenziali non sono sul server di GitHub. Ma in alcuni casi il token OAuth del tuo account GitHub farà tutto.

• Perché ho problemi con la modifica di Problemi/Pull Requests (PRs)?
-

Se non si è in grado di modificare Problemi/PR nel repository di un'organizzazione pubblica, contattare la propria organizzazione per concedere l'accesso a FastHub. In alternativa puoi accedere con un token di accesso.

+

Se non si è in grado di modificare Problemi/PR nel repository di unorganizzazione pubblica, contattare la propria organizzazione per concedere laccesso a FastHub. In alternativa puoi accedere con un token di accesso.

• Sto avendo problemi! / Voglio suggerirti alcune cose!

Vai a https://github.com/k0shk0sh/FastHub/issues/new e crea un nuovo problema per eventuali bug e richieste di funzionalità. Ti incoraggio davvero a cercare problemi simili prima di aprirne uno nuovo. Qualsiasi ticket duplicato sarà etichettato come duplicato e chiuso immediatamente.

diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f4966b40..8c3402ae 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -422,14 +422,14 @@ Проекты Проекты отсутствуют Карточки отсутствуют - Добавлено %s %s + Добавлено %s %s Слишком много изменений для отображения. Посмотрите их, пожалуйста, в браузере Проект ПОЖАЛУЙСТА, ОЗНАКОМЬТЕСЬ! • Почему я не вижу Организаций, в которых состою? -

Перейдите по ссылке https://github.com/settings/applications, выберите FastHub, напротив 'Organization access' ('Доступ к организациям') нажмите кнопку 'Grant' ('Предоставить'). +

Перейдите по ссылке https://github.com/settings/applications, выберите FastHub, напротив Organization access (Доступ к организациям) нажмите кнопку Grant (Предоставить). Хорошей и простой альтернативой будет выполнение входа при помощи Маркера доступа (Access Token).

• Я попытался выполнить вход, используя Маркер доступа (Access Token) и одноразовый пароль, но безуспешно. В чём дело?

Вы не сможете выполнить вход при помощи Маркера доступа и одноразового пароля. Так как такие пароли имеют ограниченный срок действия, вам придётся проделывать операцию входа каждые несколько секунд.

diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 9cf7e668..5003c4fb 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -23,5 +23,5 @@ 16dp 1 1 - drawable_callback +
diff --git a/app/src/test/java/com/fastaccess/login/LoginPresenterTest.java b/app/src/test/java/com/fastaccess/login/LoginPresenterTest.java deleted file mode 100644 index 43ee13d4..00000000 --- a/app/src/test/java/com/fastaccess/login/LoginPresenterTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.fastaccess.login; - -import com.fastaccess.ui.modules.login.LoginMvp; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; -import org.mockito.Mock; - -/** - * Created by Kosh on 02 May 2017, 7:52 PM - */ - -@RunWith(JUnit4.class) -public class LoginPresenterTest { - - @Mock private LoginMvp.View view; - - @Before public void setUp() throws Exception { -// MockitoAnnotations.initMocks(this); -// final TiPresenterInstructor instructor = new TiPresenterInstructor<>(new LoginPresenter()); -// instructor.attachView(view); - } - - @Test public void onTokenResponse() throws Exception {} - - @Test public void onHandleAuthIntent() throws Exception { - - } - - @Test public void onUserResponse() throws Exception { - - } - - @Test public void login() throws Exception { - - } - -} diff --git a/build.gradle b/build.gradle index 6ade19ab..70b8ac7a 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ buildscript { assertjVersion = '2.5.0' espresseVersion = '2.2.2' requery = '1.3.2' - kotlin_version = '1.2.10' + kotlin_version = '1.3.61' commonmark = '0.10.0' glideVersion = '3.7.0' } @@ -23,13 +23,12 @@ buildscript { maven { url 'https://maven.fabric.io/public' } } dependencies { - classpath 'com.android.tools.build:gradle:3.2.0-alpha08' - classpath 'com.google.gms:google-services:3.2.0' - classpath 'com.novoda:gradle-build-properties-plugin:0.3' - classpath 'com.dicedmelon.gradle:jacoco-android:0.1.2' - classpath 'io.fabric.tools:gradle:1.24.1' - classpath 'com.apollographql.apollo:gradle-plugin:0.4.1' + classpath 'com.android.tools.build:gradle:3.5.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}" + classpath 'com.google.gms:google-services:3.2.0' + classpath 'com.novoda:gradle-build-properties-plugin:0.4.1' + classpath 'io.fabric.tools:gradle:1.31.2' + classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.2.2' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8536732f..174a9819 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ -#Fri Feb 16 18:31:07 CET 2018 +#Wed Dec 25 06:39:30 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip android.enableD8=true From cf857d2c1fb034a61e3d17ff27e1fda7307bb539 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 07:06:53 +0100 Subject: [PATCH 14/59] fix navbar --- .../other_layouts/layout/drawer_header.xml | 32 +++++++++---------- .../other_layouts/layout/nav_menu_layout.xml | 12 +++---- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml b/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml index 922f1486..5a9045e8 100644 --- a/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml +++ b/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml @@ -1,47 +1,45 @@ - + android:layout_gravity="center"> + android:layout_marginStart="@dimen/spacing_xs_large" + android:layout_marginEnd="@dimen/spacing_xs_large" /> + tools:visibility="visible" /> + android:text="@string/app_name" /> + android:text="@string/app_name" /> + android:visibility="gone" /> diff --git a/app/src/main/res/layouts/other_layouts/layout/nav_menu_layout.xml b/app/src/main/res/layouts/other_layouts/layout/nav_menu_layout.xml index f7578edb..610bf7a3 100644 --- a/app/src/main/res/layouts/other_layouts/layout/nav_menu_layout.xml +++ b/app/src/main/res/layouts/other_layouts/layout/nav_menu_layout.xml @@ -1,14 +1,14 @@ - + app:tabTextColor="?android:textColorTertiary" /> + android:enabled="false" /> \ No newline at end of file From 9cb104fcfa858dc91dd0fddfa1b16fbcac46589d Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 08:50:01 +0100 Subject: [PATCH 15/59] fix trending --- .travis.yml | 46 -------- app/build.gradle | 3 +- .../data/dao/FirebaseTrendingConfigModel.kt | 36 ++++++ .../fastaccess/data/service/ScrapService.kt | 3 +- .../provider/colors/ColorsProvider.java | 5 +- .../converters/GithubResponseConverter.java | 2 +- .../interceptors/AuthenticationInterceptor.kt | 4 +- .../provider/rest/jsoup/JsoupProvider.java | 13 ++- .../ui/base/mvp/presenter/BasePresenter.java | 16 ++- .../ui/modules/trending/TrendingActivity.kt | 35 +++--- .../ui/modules/trending/TrendingPresenter.kt | 1 - .../trending/fragment/TrendingFragment.kt | 7 +- .../trending/fragment/TrendingFragmentMvp.kt | 2 +- .../fragment/TrendingFragmentPresenter.kt | 109 ++++++++++++------ .../fastaccess/ui/widgets/AvatarLayout.java | 2 +- .../layout/trending_activity_layout.xml | 36 +++--- .../other_layouts/layout/avatar_layout.xml | 5 +- 17 files changed, 177 insertions(+), 148 deletions(-) delete mode 100644 .travis.yml create mode 100644 app/src/main/java/com/fastaccess/data/dao/FirebaseTrendingConfigModel.kt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7b5efd7a..00000000 --- a/.travis.yml +++ /dev/null @@ -1,46 +0,0 @@ -language: android - -android: - components: - - tools - - platform-tools - - tools # Upgrade again after upgrading platform-tools. - -jdk: oraclejdk8 - -sudo: required - -before_install: - # Skip build if the commit message contains [skip travis] or [travis skip] - - > - echo "$TRAVIS_COMMIT_MESSAGE" - | grep -E '\[(skip travis|travis skip)\]' - && echo "[skip travis] has been found, exiting." - && exit 0 || true - -before_script: - - mkdir -p $ANDROID_HOME/licenses - - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license - - echo -e "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license - - echo -e "\n504667f4c0de7af1a06de9f4b1727b84351f2910" > $ANDROID_HOME/licenses/android-sdk-preview-license - -script: - - ./gradlew clean assembleDebug --no-daemon --stacktrace - -before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - -cache: - directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ - - $HOME/.android/build-cache - -after_success: - - bash <(curl -s https://codecov.io/bash) - -notifications: - email: false - webhooks: https://www.travisbuddy.com/ - on_success: never diff --git a/app/build.gradle b/app/build.gradle index 7d66e313..a86ec646 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -130,8 +130,9 @@ dependencies { implementation "com.squareup.retrofit2:retrofit:${retrofit}" implementation "com.squareup.retrofit2:converter-gson:${retrofit}" implementation "com.squareup.retrofit2:adapter-rxjava2:${retrofit}" + implementation "com.squareup.retrofit2:converter-scalars:${retrofit}" implementation "com.github.bumptech.glide:glide:${glideVersion}" - implementation 'cn.gavinliu.android.lib:ShapedImageView:0.8.3' + implementation 'cn.gavinliu:ShapedImageView:0.8.7' implementation "com.jakewharton:butterknife:${butterKnifeVersion}" implementation 'it.sephiroth.android.library.bottomnavigation:bottom-navigation:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.1.10' diff --git a/app/src/main/java/com/fastaccess/data/dao/FirebaseTrendingConfigModel.kt b/app/src/main/java/com/fastaccess/data/dao/FirebaseTrendingConfigModel.kt new file mode 100644 index 00000000..9859cd68 --- /dev/null +++ b/app/src/main/java/com/fastaccess/data/dao/FirebaseTrendingConfigModel.kt @@ -0,0 +1,36 @@ +package com.fastaccess.data.dao + +data class FirebaseTrendingConfigModel( + var pathUrl: String = "https://github.com/trending/", + var description: String = ".Box-row > p", + var forks: String = ".f6 > a[href*=/network]", + var language: String = ".f6 span[itemprop=programmingLanguage]", + var languageFallback: String = ".f6 span[itemprop=programmingLanguage]", + var listName: String = ".Box", + var listNameSublistTag: String = "article", + var stars: String = ".f6 > a[href*=/stargazers]", + var title: String = ".Box-row > h1 > a", + var todayStars: String = ".f6 > span.float-sm-right", + var todayStarsFallback: String = ".f6 > span.float-sm-right" +) { + + companion object { + fun map(map: HashMap?): FirebaseTrendingConfigModel { + val trendingModel = FirebaseTrendingConfigModel() + map?.let { + trendingModel.description = it.getOrElse("description") { trendingModel.description } + trendingModel.forks = it.getOrElse("forks") { trendingModel.forks } + trendingModel.language = it.getOrElse("language") { trendingModel.language } + trendingModel.languageFallback = it.getOrElse("language_fallback") { trendingModel.languageFallback } + trendingModel.listName = it.getOrElse("list_name") { trendingModel.listName } + trendingModel.listNameSublistTag = it.getOrElse("list_name_sublist_tag") { trendingModel.listNameSublistTag } + trendingModel.stars = it.getOrElse("stars") { trendingModel.stars } + trendingModel.title = it.getOrElse("title") { trendingModel.title } + trendingModel.todayStars = it.getOrElse("today_stars") { trendingModel.title } + trendingModel.todayStarsFallback = it.getOrElse("today_stars_fallback") { trendingModel.title } + trendingModel.pathUrl = it.getOrElse("path_url") { trendingModel.pathUrl } + } + return trendingModel + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/data/service/ScrapService.kt b/app/src/main/java/com/fastaccess/data/service/ScrapService.kt index de9d15f2..c75711ce 100644 --- a/app/src/main/java/com/fastaccess/data/service/ScrapService.kt +++ b/app/src/main/java/com/fastaccess/data/service/ScrapService.kt @@ -2,6 +2,7 @@ package com.fastaccess.data.service import io.reactivex.Observable +import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Path import retrofit2.http.Query @@ -12,7 +13,7 @@ import retrofit2.http.Query interface ScrapService { - @GET("{lan}") fun getTrending(@Path("lan") lan: String?, @Query("since") since: String?): Observable + @GET("{lan}") fun getTrending(@Path("lan") lan: String?, @Query("since") since: String?): Observable> @GET("{path}") fun getWiki(@Path(value = "path", encoded = true) path: String?): Observable } diff --git a/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java b/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java index f21b1672..fc760f27 100644 --- a/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java +++ b/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java @@ -1,5 +1,6 @@ package com.fastaccess.provider.colors; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Color; import android.support.annotation.ColorInt; @@ -39,7 +40,7 @@ public class ColorsProvider { private static Map colors = new LinkedHashMap<>(); - public static void load() { + @SuppressLint("CheckResult") public static void load() { if (colors.isEmpty()) { RxHelper.safeObservable(Observable .create(observableEmitter -> { @@ -68,7 +69,7 @@ public class ColorsProvider { .filter(value -> value != null && !InputHelper.isEmpty(value.getKey())) .map(Map.Entry::getKey) .collect(Collectors.toCollection(ArrayList::new))); - lang.add(0, "All Languages"); + lang.add(0, "All"); lang.addAll(1, POPULAR_LANG); return lang; } diff --git a/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java b/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java index 630f6e77..d8bca871 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java +++ b/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java @@ -39,7 +39,7 @@ public class GithubResponseConverter extends Converter.Factory { return GsonConverterFactory.create(gson).requestBodyConverter(type, parameterAnnotations, methodAnnotations, retrofit); } - private static class StringResponseConverter implements Converter { + public static class StringResponseConverter implements Converter { @Override public String convert(@NonNull ResponseBody value) throws IOException { return value.string(); } diff --git a/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt b/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt index 5e381a54..be5eae49 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt +++ b/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt @@ -28,10 +28,10 @@ class AuthenticationInterceptor : Interceptor { val authToken = if (token.isNullOrBlank()) if (isEnterprise) PrefGetter.getEnterpriseToken() else PrefGetter.getToken() else token val otpCode = if (otp.isNullOrBlank()) if (isEnterprise) PrefGetter.getEnterpriseOtpCode() else PrefGetter.getOtpCode() else otp if (!authToken.isNullOrBlank()) { - builder.header("Authorization", if (authToken!!.startsWith("Basic")) authToken else "token " + authToken) + builder.header("Authorization", if (authToken.startsWith("Basic")) authToken else "token $authToken") } if (!otpCode.isNullOrBlank()) { - builder.addHeader("X-GitHub-OTP", otpCode!!.trim()) + builder.addHeader("X-GitHub-OTP", otpCode.trim()) } if (!isScrapping) builder.addHeader("User-Agent", "FastHub") val request = builder.build() diff --git a/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java b/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java index c95d4be4..479a9c25 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java @@ -1,15 +1,16 @@ package com.fastaccess.provider.rest.jsoup; +import android.support.annotation.NonNull; + import com.fastaccess.BuildConfig; import com.fastaccess.data.service.ScrapService; -import com.fastaccess.provider.rest.converters.GithubResponseConverter; import com.fastaccess.provider.rest.interceptors.AuthenticationInterceptor; -import com.google.gson.Gson; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; /** * Created by Kosh on 02 Jun 2017, 12:47 PM @@ -32,11 +33,11 @@ public class JsoupProvider { return okHttpClient; } - public static ScrapService getTrendingService() { + public static ScrapService getTrendingService(@NonNull String url) { return new Retrofit.Builder() - .baseUrl("https://github.com/trending/") + .baseUrl(url) .client(provideOkHttpClient()) - .addConverterFactory(new GithubResponseConverter(new Gson())) + .addConverterFactory(ScalarsConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build() .create(ScrapService.class); @@ -46,7 +47,7 @@ public class JsoupProvider { return new Retrofit.Builder() .baseUrl("https://github.com/") .client(provideOkHttpClient()) - .addConverterFactory(new GithubResponseConverter(new Gson())) + .addConverterFactory(ScalarsConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build() .create(ScrapService.class); diff --git a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java index d3c7da5d..bc209f93 100644 --- a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java @@ -108,9 +108,7 @@ public class BasePresenter extends TiPresenter impl @StringRes private int getPrettifiedErrorMessage(@Nullable Throwable throwable) { int resId = R.string.network_error; - if (throwable instanceof HttpException) { - resId = R.string.network_error; - } else if (throwable instanceof IOException) { + if (throwable instanceof IOException) { resId = R.string.request_error; } else if (throwable instanceof TimeoutException) { resId = R.string.unexpected_error; @@ -119,12 +117,12 @@ public class BasePresenter extends TiPresenter impl } public void onCheckGitHubStatus() { - manageObservable(RestProvider.gitHubStatus() - .doOnNext(gitHubStatusModel -> { - if (!"good".equalsIgnoreCase(gitHubStatusModel.getStatus())) { - sendToView(v -> v.showErrorMessage("Github Status:\n" + gitHubStatusModel.getBody())); - } - })); +// manageObservable(RestProvider.gitHubStatus() +// .doOnNext(gitHubStatusModel -> { +// if (!"good".equalsIgnoreCase(gitHubStatusModel.getStatus())) { +// sendToView(v -> v.showErrorMessage("Github Status:\n" + gitHubStatusModel.getBody())); +// } +// })); } public boolean isEnterprise() { diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingActivity.kt index 2f924b41..8092d423 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingActivity.kt @@ -26,6 +26,7 @@ import com.fastaccess.ui.base.BaseActivity import com.fastaccess.ui.modules.main.MainActivity import com.fastaccess.ui.modules.trending.fragment.TrendingFragment import com.fastaccess.ui.widgets.FontEditText +import java.util.* /** @@ -44,7 +45,7 @@ class TrendingActivity : BaseActivity(), Tr @BindView(R.id.searchEditText) lateinit var searchEditText: FontEditText - @State var selectedTitle: String = "All Language" + @State var selectedTitle: String = "All" @OnTextChanged(value = [R.id.searchEditText], callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) fun onTextChange(s: Editable) { val text = s.toString() @@ -103,11 +104,11 @@ class TrendingActivity : BaseActivity(), Tr override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) navMenu.itemIconTintList = null - trendingFragment = supportFragmentManager.findFragmentById(R.id.trendingFragment) as TrendingFragment? - navMenu.setNavigationItemSelectedListener({ item -> + trendingFragment = supportFragmentManager.findFragmentById(R.id.trendingFragment) as? TrendingFragment + navMenu.setNavigationItemSelectedListener { item -> closeDrawerLayout() onItemClicked(item) - }) + } setupIntent(savedInstanceState) if (savedInstanceState == null) { presenter.onLoadLanguage() @@ -136,8 +137,10 @@ class TrendingActivity : BaseActivity(), Tr true } R.id.share -> { - ActivityHelper.shareUrl(this, "${LinkParserHelper.PROTOCOL_HTTPS}://${LinkParserHelper.HOST_DEFAULT}" + - "/trending/$selectedTitle") + ActivityHelper.shareUrl( + this, "${LinkParserHelper.PROTOCOL_HTTPS}://${LinkParserHelper.HOST_DEFAULT}" + + "/trending/$selectedTitle" + ) return true } android.R.id.home -> { @@ -151,9 +154,9 @@ class TrendingActivity : BaseActivity(), Tr override fun onAppend(title: String, color: Int) { navMenu.menu.add(R.id.languageGroup, title.hashCode(), Menu.NONE, title) - .setCheckable(true) - .setIcon(createOvalShape(color)) - .isChecked = title.toLowerCase() == selectedTitle.toLowerCase() + .setCheckable(true) + .setIcon(createOvalShape(color)) + .isChecked = title.toLowerCase() == selectedTitle.toLowerCase() } override fun onClearMenu() { @@ -162,7 +165,7 @@ class TrendingActivity : BaseActivity(), Tr private fun onItemClicked(item: MenuItem?): Boolean { selectedTitle = when (item?.title.toString()) { - "All Language" -> "" + "All" -> "" else -> item?.title.toString() } Logger.e(selectedTitle) @@ -194,15 +197,15 @@ class TrendingActivity : BaseActivity(), Tr if (intent != null && intent.extras != null) { val bundle = intent.extras if (bundle != null) { - val lang: String = bundle.getString(BundleConstant.EXTRA) + val lang: String = bundle.getString(BundleConstant.EXTRA) ?: "All" val query: String? = bundle.getString(BundleConstant.EXTRA_TWO) - if (!lang.isEmpty()) { + if (lang.isNotEmpty()) { selectedTitle = lang } if (query.isNullOrEmpty()) { daily.isSelected = true } else { - when (query?.toLowerCase()) { + when (query.toLowerCase(Locale.getDefault())) { "daily" -> daily.isSelected = true "weekly" -> weekly.isSelected = true "monthly" -> monthly.isSelected = true @@ -229,10 +232,12 @@ class TrendingActivity : BaseActivity(), Tr companion object { fun getTrendingIntent(context: Context, lang: String?, query: String?): Intent { val intent = Intent(context, TrendingActivity::class.java) - intent.putExtras(Bundler.start() + intent.putExtras( + Bundler.start() .put(BundleConstant.EXTRA, lang) .put(BundleConstant.EXTRA_TWO, query) - .end()) + .end() + ) return intent } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingPresenter.kt index f6d44553..438a3d28 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/TrendingPresenter.kt @@ -25,7 +25,6 @@ class TrendingPresenter : BasePresenter(), TrendingMvp.Present val lanColor = Color.parseColor(color.color) sendToView { it.onAppend(t, lanColor) } } catch (e: Exception) { - e.printStackTrace() sendToView { it.onAppend(t, Color.LTGRAY) } } } else { diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragment.kt index ad4d0d77..40366027 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragment.kt @@ -7,11 +7,13 @@ import butterknife.BindView import com.evernote.android.state.State import com.fastaccess.R import com.fastaccess.data.dao.TrendingModel +import com.fastaccess.helper.Logger import com.fastaccess.ui.adapter.TrendingAdapter import com.fastaccess.ui.base.BaseFragment import com.fastaccess.ui.widgets.StateLayout import com.fastaccess.ui.widgets.recyclerview.DynamicRecyclerView import com.fastaccess.ui.widgets.recyclerview.scroll.RecyclerViewFastScroller +import kotlin.math.sin /** * Created by Kosh on 30 May 2017, 11:37 PM @@ -43,13 +45,14 @@ class TrendingFragment : BaseFragment) { + adapter.insertItems(items) } override fun onSetQuery(lang: String, since: String) { this.lang = lang this.since = since + Logger.e(lang, since) adapter.clear() presenter.onCallApi(lang, since) } diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentMvp.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentMvp.kt index 68a66dcc..c3957d2f 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentMvp.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentMvp.kt @@ -11,7 +11,7 @@ import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder interface TrendingFragmentMvp { interface View : BaseMvp.FAView { - fun onNotifyAdapter(items: TrendingModel) + fun onNotifyAdapter(items: List) fun onSetQuery(lang: String, since: String) fun clearAdapter() } diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt index f30468ae..b0e171a0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt @@ -1,17 +1,20 @@ package com.fastaccess.ui.modules.trending.fragment import android.view.View +import com.fastaccess.data.dao.FirebaseTrendingConfigModel import com.fastaccess.data.dao.TrendingModel -import com.fastaccess.helper.InputHelper +import com.fastaccess.helper.Logger import com.fastaccess.helper.RxHelper import com.fastaccess.provider.rest.jsoup.JsoupProvider import com.fastaccess.ui.base.mvp.presenter.BasePresenter import com.fastaccess.ui.modules.repos.RepoPagerActivity +import com.github.b3er.rxfirebase.database.RxFirebaseDatabase +import com.google.firebase.database.FirebaseDatabase import io.reactivex.Observable import io.reactivex.disposables.Disposable import org.jsoup.Jsoup -import org.jsoup.nodes.Document -import org.jsoup.select.Elements +import java.util.* +import kotlin.collections.ArrayList /** * Created by Kosh on 30 May 2017, 11:04 PM @@ -22,6 +25,7 @@ class TrendingFragmentPresenter : BasePresenter(), Tre private var disposel: Disposable? = null private val trendingList: ArrayList = ArrayList() + private var firebaseTrendingConfigModel: FirebaseTrendingConfigModel? = null override fun getTendingList(): ArrayList { return trendingList @@ -30,53 +34,82 @@ class TrendingFragmentPresenter : BasePresenter(), Tre override fun onItemLongClick(position: Int, v: View?, item: TrendingModel?) {} override fun onItemClick(position: Int, v: View?, item: TrendingModel?) { - val split = item?.title?.trim()?.split("/")!! - v?.context!!.startActivity(RepoPagerActivity.createIntent(v.context!!, split[1].trim(), split[0].trim())) + val split = item?.title?.trim()?.split("/") ?: return + v?.context?.let { it.startActivity(RepoPagerActivity.createIntent(it, split[1].trim(), split[0].trim())) } } override fun onCallApi(lang: String, since: String) { disposel?.let { if (!it.isDisposed) it.dispose() } - disposel = RxHelper.getObservable(JsoupProvider.getTrendingService().getTrending( - (if (!InputHelper.isEmpty(lang)) lang.replace(" ".toRegex(), "-") else "").toLowerCase(), since)) - .flatMap { s -> RxHelper.getObservable(getTrendingObservable(s)) } - .doOnSubscribe { - sendToView { - it.showProgress(0) - it.clearAdapter() + val config = firebaseTrendingConfigModel + + if (com.fastaccess.BuildConfig.DEBUG) { + callApi(lang, since) + } else { + if (config == null) { + manageDisposable(RxHelper.getSingle( + RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_trending")) + ) + .map { + firebaseTrendingConfigModel = FirebaseTrendingConfigModel + .map(it.value as? HashMap) + return@map firebaseTrendingConfigModel } + .subscribe( + { callApi(lang, since) }, + { callApi(lang, since) } + ) + ) + } else { + callApi(lang, since) + } + } + } + + private fun callApi( + lang: String, + since: String + ) { + val model = firebaseTrendingConfigModel ?: FirebaseTrendingConfigModel() + + val language = if (lang == "All") "" else lang.replace(" ", "_").toLowerCase(Locale.getDefault()) + + disposel = RxHelper.getObservable(JsoupProvider.getTrendingService(model.pathUrl).getTrending(language, since)) + .doOnSubscribe { + sendToView { + it.showProgress(0) + it.clearAdapter() } - .subscribe({ response -> sendToView { view -> view.onNotifyAdapter(response) } }, - { throwable -> onError(throwable) }, { sendToView({ it.hideProgress() }) }) + }.flatMap { + RxHelper.getObservable(getTrendingObservable(it.body() ?: "", model)) + }.subscribe( + { response -> sendToView { view -> view.onNotifyAdapter(response) } }, + { throwable -> onError(throwable) }, + { sendToView { it.hideProgress() } } + ) manageDisposable(disposel) } - private fun getTrendingObservable(response: String): Observable { + private fun getTrendingObservable(html: String, trendingModel: FirebaseTrendingConfigModel): Observable> { return Observable.fromPublisher { s -> - val document: Document = Jsoup.parse(response, "") - val repoList = document.select(".repo-list") - if (repoList.isNotEmpty()) { - val list: Elements? = repoList.select("li") - list?.let { - if (list.isNotEmpty()) { - it.onEach { - val title = it.select(".d-inline-block > h3 > a").text() - val description = it.select(".py-1 > p").text() - val stars = it.select(".f6 > a[href*=/stargazers]").text() - val forks = it.select(".f6 > a[href*=/network]").text() - var todayStars = it.select(".f6 > span.float-right").text() - if (todayStars.isNullOrBlank()) { - todayStars = it.select(".f6 > span.float-sm-right").text() - } - var language = it.select(".f6 .mr-3 > span[itemprop=programmingLanguage]").text() - if (language.isNullOrBlank()) { - language = it.select(".f6 span[itemprop=programmingLanguage]").text() - } - s.onNext(TrendingModel(title, description, language, stars, forks, todayStars)) - } - } - } + val document = Jsoup.parse(html, "") + val list = document.select(trendingModel.listName) + val trendingList = arrayListOf() + list.select(trendingModel.listNameSublistTag)?.let { li -> + trendingList.addAll(li.map { body -> + val trendingLang = kotlin.runCatching { body.select(trendingModel.language).text() } + .getOrNull() ?: kotlin.runCatching { body.select(trendingModel.languageFallback).text() }.getOrNull() + val todayStars = kotlin.runCatching { body.select(trendingModel.todayStars).text() } + .getOrNull() ?: kotlin.runCatching { body.select(trendingModel.todayStarsFallback).text() }.getOrNull() + val title = kotlin.runCatching { body.select(trendingModel.title).text() }.getOrNull() + val description = kotlin.runCatching { body.select(trendingModel.description).text() }.getOrNull() + val stars = kotlin.runCatching { body.select(trendingModel.stars).text() }.getOrNull() + val forks = kotlin.runCatching { body.select(trendingModel.forks).text() }.getOrNull() + TrendingModel(title, description, trendingLang, stars, forks, todayStars) + }) } + Logger.e(trendingList as List?) + s.onNext(trendingList) s.onComplete() } } diff --git a/app/src/main/java/com/fastaccess/ui/widgets/AvatarLayout.java b/app/src/main/java/com/fastaccess/ui/widgets/AvatarLayout.java index db84b7e1..7988b861 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/AvatarLayout.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/AvatarLayout.java @@ -94,7 +94,7 @@ public class AvatarLayout extends FrameLayout { .dontAnimate() .into(avatar); } - + private void setBackground() { if (PrefGetter.isRectAvatar()) { setBackgroundResource(R.drawable.rect_shape); diff --git a/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml index cc88799c..084f905b 100644 --- a/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml @@ -1,12 +1,10 @@ - - + + tools:layout="@layout/micro_grid_refresh_list" /> - + @@ -52,7 +49,8 @@ android:layout_height="wrap_content" android:minHeight="?actionBarSize" android:orientation="horizontal" - android:paddingTop="@dimen/spacing_large"> + android:paddingTop="@dimen/spacing_large" + android:paddingBottom="@dimen/spacing_large"> + android:textColor="@color/search_tab_highlighter" /> + android:textColor="@color/search_tab_highlighter" /> + android:textColor="@color/search_tab_highlighter" /> + android:background="?dividerColor" /> + android:paddingEnd="@dimen/spacing_xs_large" + android:textColorHint="?android:textColorSecondary" /> + tools:visibility="visible" /> + android:background="?dividerColor" /> + app:menu="@menu/dynamic_trending_menu" /> - + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout/avatar_layout.xml b/app/src/main/res/layouts/other_layouts/layout/avatar_layout.xml index 92d2dc0e..a9a21c87 100644 --- a/app/src/main/res/layouts/other_layouts/layout/avatar_layout.xml +++ b/app/src/main/res/layouts/other_layouts/layout/avatar_layout.xml @@ -1,6 +1,5 @@ - + app:shape_mode="circle" /> \ No newline at end of file From 28dfa96bc7a3b10e960a6b8166d1580c40a907b0 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 10:25:52 +0100 Subject: [PATCH 16/59] fix wiki --- .../data/dao/wiki/FirebaseWikiConfigModel.kt | 31 +++++ .../data/dao/wiki/WikiContentModel.kt | 2 +- .../ui/modules/repos/wiki/WikiActivity.kt | 70 +++++----- .../ui/modules/repos/wiki/WikiMvp.kt | 1 + .../ui/modules/repos/wiki/WikiPresenter.kt | 120 +++++++++++------- .../fragment/TrendingFragmentPresenter.kt | 5 +- app/src/main/res/values/strings.xml | 1 + 7 files changed, 151 insertions(+), 79 deletions(-) create mode 100644 app/src/main/java/com/fastaccess/data/dao/wiki/FirebaseWikiConfigModel.kt diff --git a/app/src/main/java/com/fastaccess/data/dao/wiki/FirebaseWikiConfigModel.kt b/app/src/main/java/com/fastaccess/data/dao/wiki/FirebaseWikiConfigModel.kt new file mode 100644 index 00000000..25f2120c --- /dev/null +++ b/app/src/main/java/com/fastaccess/data/dao/wiki/FirebaseWikiConfigModel.kt @@ -0,0 +1,31 @@ +package com.fastaccess.data.dao.wiki + +data class FirebaseWikiConfigModel( + var sideBarListTitle: String = "a", + var sideBarUl: String = ".js-wiki-sidebar-toggle-display > ul", + var sideBarList: String = "li", + var wikiWrapper: String = "#wiki-wrapper", + var wikiHeader: String = ".gh-header > h1.gh-header-title", + var sideBarListLink: String = "href", + var wikiBody: String = "#wiki-body", + var wikiSubHeader: String = ".gh-header-meta", + var wikiContent: String = "#wiki-content" +) { + companion object { + fun map(map: HashMap?): FirebaseWikiConfigModel { + val model = FirebaseWikiConfigModel() + map?.let { + model.sideBarListTitle = it.getOrElse("sideBarListTitle") { model.sideBarListTitle } + model.sideBarUl = it.getOrElse("sideBarUl") { model.sideBarUl } + model.sideBarList = it.getOrElse("sideBarList") { model.sideBarList } + model.wikiWrapper = it.getOrElse("wikiWrapper") { model.wikiWrapper } + model.wikiHeader = it.getOrElse("wikiHeader") { model.wikiHeader } + model.sideBarListLink = it.getOrElse("sideBarListLink") { model.sideBarListLink } + model.wikiBody = it.getOrElse("wikiBody") { model.wikiBody } + model.wikiSubHeader = it.getOrElse("wikiSubHeader") { model.wikiSubHeader } + model.wikiContent = it.getOrElse("wikiContent") { model.wikiContent } + } + return model + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt index d37c1478..cafe8d30 100644 --- a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt @@ -8,7 +8,7 @@ import com.fastaccess.helper.parcelableCreator * Created by Kosh on 13 Jun 2017, 8:06 PM */ data class WikiContentModel(val content: String? = null, private val footer: String? = null, - val sidebar: ArrayList) : KotlinParcelable { + val sidebar: List) : KotlinParcelable { companion object { @JvmField val CREATOR = parcelableCreator(::WikiContentModel) } diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt index 409de198..48091ebc 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt @@ -53,12 +53,12 @@ class WikiActivity : BaseActivity(), WikiMvp.View { } if (wiki.content != null) { val baseUrl = Uri.Builder().scheme(LinkParserHelper.PROTOCOL_HTTPS) - .authority(LinkParserHelper.HOST_DEFAULT) - .appendPath(presenter.login) - .appendPath(presenter.repoId) - .appendPath("wiki") - .build() - .toString() + .authority(LinkParserHelper.HOST_DEFAULT) + .appendPath(presenter.login) + .appendPath(presenter.repoId) + .appendPath("wiki") + .build() + .toString() webView.setWikiContent(wiki.content, baseUrl) } } @@ -67,15 +67,6 @@ class WikiActivity : BaseActivity(), WikiMvp.View { selectedTitle = page } - private fun loadMenu() { - navMenu.menu.clear() - wiki.sidebar.onEach { - navMenu.menu.add(R.id.languageGroup, it.title?.hashCode()!!, Menu.NONE, it.title) - .setCheckable(true) - .isChecked = it.title.toLowerCase() == selectedTitle.toLowerCase() - } - } - override fun canBack(): Boolean = true override fun isSecured(): Boolean = false @@ -96,18 +87,6 @@ class WikiActivity : BaseActivity(), WikiMvp.View { setTaskName("${presenter.login}/${presenter.repoId} - Wiki - $selectedTitle") } - private fun onSidebarClicked(item: MenuItem) { - this.selectedTitle = item.title.toString() - setTaskName("${presenter.login}/${presenter.repoId} - Wiki - $selectedTitle") - closeDrawerLayout() - wiki.sidebar.first { it.title?.toLowerCase() == item.title.toString().toLowerCase() } - .let { presenter.onSidebarClicked(it) } - } - - private fun closeDrawerLayout() { - drawerLayout.closeDrawer(Gravity.END) - } - override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.trending_menu, menu) menu?.findItem(R.id.menu)?.setIcon(R.drawable.ic_menu) @@ -121,8 +100,10 @@ class WikiActivity : BaseActivity(), WikiMvp.View { return true } R.id.share -> { - ActivityHelper.shareUrl(this, "${LinkParserHelper.PROTOCOL_HTTPS}://${LinkParserHelper.HOST_DEFAULT}/" + - "${presenter.login}/${presenter.repoId}/wiki/$selectedTitle") + ActivityHelper.shareUrl( + this, "${LinkParserHelper.PROTOCOL_HTTPS}://${LinkParserHelper.HOST_DEFAULT}/" + + "${presenter.login}/${presenter.repoId}/wiki/$selectedTitle" + ) return true } android.R.id.home -> { @@ -165,6 +146,31 @@ class WikiActivity : BaseActivity(), WikiMvp.View { stateLayout.hideProgress() } + override fun showPrivateRepoError() { + onLoadContent(WikiContentModel("

${getString(R.string.private_wiki_error_msg)}

", null, listOf())) + } + + private fun onSidebarClicked(item: MenuItem) { + this.selectedTitle = item.title.toString() + setTaskName("${presenter.login}/${presenter.repoId} - Wiki - $selectedTitle") + closeDrawerLayout() + wiki.sidebar.first { it.title?.toLowerCase() == item.title.toString().toLowerCase() } + .let { presenter.onSidebarClicked(it) } + } + + private fun closeDrawerLayout() { + drawerLayout.closeDrawer(Gravity.END) + } + + private fun loadMenu() { + navMenu.menu.clear() + wiki.sidebar.onEach { + navMenu.menu.add(R.id.languageGroup, it.title?.hashCode()!!, Menu.NONE, it.title) + .setCheckable(true) + .isChecked = it.title.toLowerCase() == selectedTitle.toLowerCase() + } + } + companion object { fun getWiki(context: Context, repoId: String?, username: String?): Intent { return getWiki(context, repoId, username, null) @@ -172,11 +178,13 @@ class WikiActivity : BaseActivity(), WikiMvp.View { fun getWiki(context: Context, repoId: String?, username: String?, page: String?): Intent { val intent = Intent(context, WikiActivity::class.java) - intent.putExtras(Bundler.start() + intent.putExtras( + Bundler.start() .put(BundleConstant.ID, repoId) .put(BundleConstant.EXTRA, username) .put(BundleConstant.EXTRA_TWO, page) - .end()) + .end() + ) return intent } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiMvp.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiMvp.kt index 20091594..0ed37bed 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiMvp.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiMvp.kt @@ -12,6 +12,7 @@ interface WikiMvp { interface View : BaseMvp.FAView { fun onLoadContent(wiki: WikiContentModel) fun onSetPage(page: String) + fun showPrivateRepoError() } interface Presenter { diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt index b1fe3efc..401a9f98 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt @@ -1,15 +1,22 @@ package com.fastaccess.ui.modules.repos.wiki import android.content.Intent +import com.fastaccess.BuildConfig +import com.fastaccess.R +import com.fastaccess.data.dao.wiki.FirebaseWikiConfigModel import com.fastaccess.data.dao.wiki.WikiContentModel import com.fastaccess.data.dao.wiki.WikiSideBarModel import com.fastaccess.helper.BundleConstant import com.fastaccess.helper.RxHelper import com.fastaccess.provider.rest.jsoup.JsoupProvider import com.fastaccess.ui.base.mvp.presenter.BasePresenter +import com.github.b3er.rxfirebase.database.RxFirebaseDatabase +import com.google.firebase.database.FirebaseDatabase import io.reactivex.Observable import org.jsoup.Jsoup import org.jsoup.nodes.Document +import retrofit2.HttpException +import java.util.* /** * Created by Kosh on 13 Jun 2017, 8:14 PM @@ -18,69 +25,94 @@ class WikiPresenter : BasePresenter(), WikiMvp.Presenter { @com.evernote.android.state.State var repoId: String? = null @com.evernote.android.state.State var login: String? = null + private var firebaseWikiConfigModel: FirebaseWikiConfigModel? = null override fun onActivityCreated(intent: Intent?) { if (intent != null) { val bundle = intent.extras - repoId = bundle.getString(BundleConstant.ID) - login = bundle.getString(BundleConstant.EXTRA) - val page = bundle.getString(BundleConstant.EXTRA_TWO) + repoId = bundle?.getString(BundleConstant.ID) + login = bundle?.getString(BundleConstant.EXTRA) + val page = bundle?.getString(BundleConstant.EXTRA_TWO) if (!page.isNullOrEmpty()) { sendToView { it.onSetPage(page) } } if (!repoId.isNullOrEmpty() && !login.isNullOrEmpty()) { - onSidebarClicked(WikiSideBarModel("Home", "$login/$repoId/wiki" + - if (!page.isNullOrEmpty()) "/$page" else "")) + onSidebarClicked(WikiSideBarModel("Home", "$login/$repoId/wiki" + if (!page.isNullOrEmpty()) "/$page" else "")) } } } override fun onSidebarClicked(sidebar: WikiSideBarModel) { + if (BuildConfig.DEBUG) { + firebaseWikiConfigModel = FirebaseWikiConfigModel() + callApi(sidebar) + } else { + if (firebaseWikiConfigModel == null) { + manageDisposable( + RxHelper.getSingle(RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_wiki"))) + .doOnSubscribe { sendToView { it.showProgress(0) } } + .map { + firebaseWikiConfigModel = FirebaseWikiConfigModel.map(it.value as? HashMap) + return@map firebaseWikiConfigModel + } + .subscribe( + { callApi(sidebar) }, + { callApi(sidebar) } + ) + ) + } else { + callApi(sidebar) + } + } + } + + private fun callApi(sidebar: WikiSideBarModel) { manageViewDisposable(RxHelper.getObservable(JsoupProvider.getWiki().getWiki(sidebar.link)) - .flatMap { s -> RxHelper.getObservable(getWikiContent(s)) } - .doOnSubscribe { sendToView { it.showProgress(0) } } - .subscribe({ response -> sendToView { view -> view.onLoadContent(response) } }, - { throwable -> onError(throwable) }, { sendToView({ it.hideProgress() }) })) + .flatMap { s -> RxHelper.getObservable(getWikiContent(s)) } + .doOnSubscribe { sendToView { it.showProgress(0) } } + .subscribe( + { response -> sendToView { view -> view.onLoadContent(response) } }, + { throwable -> + if (throwable is HttpException) { + if (throwable.code() == 404) { + sendToView { it.showPrivateRepoError() } + return@subscribe + } + } + onError(throwable) + }, + { sendToView { it.hideProgress() } } + ) + ) } private fun getWikiContent(body: String?): Observable { return Observable.fromPublisher { s -> - try { - val document: Document = Jsoup.parse(body, "") - val wikiWrapper = document.select("#wiki-wrapper") - if (wikiWrapper.isNotEmpty()) { - val cloneUrl = wikiWrapper.select(".clone-url") -// val bottomRightBar = wikiWrapper.select(".wiki-custom-sidebar") - if (cloneUrl.isNotEmpty()) { - cloneUrl.remove() - } -// if (bottomRightBar.isNotEmpty()) { -// bottomRightBar.remove() -// } - val headerHtml = wikiWrapper.select(".gh-header .gh-header-meta") - val revision = headerHtml.select("a.history") - if (revision.isNotEmpty()) { - revision.remove() - } - val header = "
${headerHtml.html()}
" - val wikiContent = wikiWrapper.select(".wiki-content") - val content = header + wikiContent.select(".wiki-body").html() - val rightBarList = wikiContent.select(".wiki-pages").select("li") - val sidebarList = arrayListOf() - if (rightBarList.isNotEmpty()) { - rightBarList.onEach { - val sidebarTitle = it.select("a").text() - val sidebarLink = it.select("a").attr("href") - sidebarList.add(WikiSideBarModel(sidebarTitle, sidebarLink)) - } - } - s.onNext(WikiContentModel(content, "", sidebarList)) - } else { - s.onNext(WikiContentModel("

No Wiki

", "", arrayListOf())) - } - } catch (e: Exception) { - e.printStackTrace() + val document: Document = Jsoup.parse(body, "") + val firebaseWikiConfigModel = firebaseWikiConfigModel ?: kotlin.run { + s.onNext(WikiContentModel("

No Wiki

", "", arrayListOf())) + s.onComplete() + return@fromPublisher } + val wikiWrapper = document.select(firebaseWikiConfigModel.wikiWrapper) + if (!wikiWrapper.isNullOrEmpty()) { + val header = wikiWrapper.select(firebaseWikiConfigModel.wikiHeader)?.text() + val subHeaderText = wikiWrapper.select(firebaseWikiConfigModel.wikiSubHeader)?.text() + val wikiContent = wikiWrapper.select(firebaseWikiConfigModel.wikiContent) + val wikiBody = wikiContent?.select(firebaseWikiConfigModel.wikiBody)?.html() + val rightBarList = wikiContent?.select(firebaseWikiConfigModel.sideBarUl)?.select(firebaseWikiConfigModel.sideBarList) + val headerHtml = "

$header


$subHeaderText

" + val content = "$headerHtml $wikiBody" + s.onNext(WikiContentModel(content, null, rightBarList?.map { + WikiSideBarModel( + it.select(firebaseWikiConfigModel.sideBarListTitle).text(), + it.select(firebaseWikiConfigModel.sideBarListTitle).attr(firebaseWikiConfigModel.sideBarListLink) + ) + } ?: listOf())) + } else { + s.onNext(WikiContentModel("

No Wiki

", "", arrayListOf())) + } + s.onComplete() } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt index b0e171a0..29780f94 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt @@ -46,9 +46,8 @@ class TrendingFragmentPresenter : BasePresenter(), Tre callApi(lang, since) } else { if (config == null) { - manageDisposable(RxHelper.getSingle( - RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_trending")) - ) + manageDisposable(RxHelper.getSingle(RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_trending"))) + .doOnSubscribe { sendToView { it.showProgress(0) } } .map { firebaseTrendingConfigModel = FirebaseTrendingConfigModel .map(it.value as? HashMap) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2c6fac99..2c0b7141 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -603,4 +603,5 @@ Menu No file changes Send feedback + Unfortunately we cannot access private repos wiki
From 378c23801d64fcac6ef5ad40001e0ed3e93487bb Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 10:27:41 +0100 Subject: [PATCH 17/59] remove extra linebreak --- .../java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt index 401a9f98..b26141c5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt @@ -101,7 +101,7 @@ class WikiPresenter : BasePresenter(), WikiMvp.Presenter { val wikiContent = wikiWrapper.select(firebaseWikiConfigModel.wikiContent) val wikiBody = wikiContent?.select(firebaseWikiConfigModel.wikiBody)?.html() val rightBarList = wikiContent?.select(firebaseWikiConfigModel.sideBarUl)?.select(firebaseWikiConfigModel.sideBarList) - val headerHtml = "

$header


$subHeaderText

" + val headerHtml = "

$header

$subHeaderText

" val content = "$headerHtml $wikiBody" s.onNext(WikiContentModel(content, null, rightBarList?.map { WikiSideBarModel( From eda43e619c0b693f7cbad7e0ace879ad0e347830 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 10:33:16 +0100 Subject: [PATCH 18/59] fix due_on --- .../main/java/com/fastaccess/data/dao/CreateMilestoneModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fastaccess/data/dao/CreateMilestoneModel.java b/app/src/main/java/com/fastaccess/data/dao/CreateMilestoneModel.java index 40cc1284..a10f8c02 100644 --- a/app/src/main/java/com/fastaccess/data/dao/CreateMilestoneModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/CreateMilestoneModel.java @@ -14,5 +14,5 @@ import lombok.Setter; public class CreateMilestoneModel { private String title; private String description; - @SerializedName("due_one") private String dueOn; + @SerializedName("due_on") private String dueOn; } From 50c651194a82ec55049b814b088b9708f226a07e Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 11:34:40 +0100 Subject: [PATCH 19/59] migrate to androidx --- app/build.gradle | 45 ++-- app/src/main/java/com/fastaccess/App.java | 4 +- .../main/java/com/fastaccess/GlideModule.kt | 8 + .../data/dao/CommitFileChanges.java | 4 +- .../fastaccess/data/dao/CommitLinesModel.java | 4 +- .../fastaccess/data/dao/EditRepoFileModel.kt | 35 +-- .../data/dao/FragmentPagerAdapterModel.java | 6 +- .../data/dao/GroupedNotificationModel.java | 2 +- .../data/dao/IssueEventAdapterModel.java | 2 +- .../data/dao/IssueRequestModel.java | 2 +- .../com/fastaccess/data/dao/NameParser.java | 2 +- .../data/dao/PullRequestAdapterModel.java | 2 +- .../data/dao/PullsIssuesParser.java | 2 +- .../fastaccess/data/dao/ReactionsModel.java | 2 +- .../fastaccess/data/dao/RepoPathsManager.java | 4 +- .../fastaccess/data/dao/SettingsModel.java | 2 +- .../data/dao/TabsCountStateModel.java | 2 +- .../fastaccess/data/dao/TimelineModel.java | 2 +- .../data/dao/model/AbstractComment.java | 2 +- .../data/dao/model/AbstractCommit.java | 2 +- .../data/dao/model/AbstractEvent.java | 4 +- .../model/AbstractFastHubNotification.java | 4 +- .../data/dao/model/AbstractGist.java | 2 +- .../data/dao/model/AbstractIssue.java | 2 +- .../data/dao/model/AbstractIssueEvent.java | 2 +- .../data/dao/model/AbstractLogin.java | 2 +- .../data/dao/model/AbstractNotification.java | 4 +- .../dao/model/AbstractNotificationQueue.java | 2 +- .../data/dao/model/AbstractPinnedGists.java | 4 +- .../data/dao/model/AbstractPinnedIssues.java | 4 +- .../dao/model/AbstractPinnedPullRequests.java | 4 +- .../data/dao/model/AbstractPinnedRepos.java | 4 +- .../data/dao/model/AbstractPullRequest.java | 2 +- .../data/dao/model/AbstractRelease.java | 2 +- .../data/dao/model/AbstractRepo.java | 2 +- .../data/dao/model/AbstractRepoFile.java | 2 +- .../data/dao/model/AbstractUser.java | 4 +- .../data/dao/model/AbstractViewerFile.java | 2 +- .../fastaccess/data/dao/types/EventsType.java | 4 +- .../fastaccess/data/dao/types/FilesType.java | 2 +- .../data/dao/types/IssueEventType.java | 4 +- .../fastaccess/data/dao/types/IssueState.java | 2 +- .../data/dao/types/ReactionTypes.java | 4 +- .../data/dao/types/ReviewStateType.java | 8 +- .../data/dao/types/StatusStateType.java | 6 +- .../data/dao/wiki/WikiContentModel.kt | 12 +- .../fastaccess/data/service/GistService.java | 2 +- .../fastaccess/data/service/ImgurService.java | 2 +- .../fastaccess/data/service/IssueService.java | 2 +- .../data/service/LoginRestService.java | 2 +- .../data/service/NotificationService.java | 4 +- .../data/service/OrganizationService.java | 2 +- .../data/service/PullRequestService.java | 2 +- .../data/service/ReactionsService.java | 2 +- .../fastaccess/data/service/RepoService.java | 2 +- .../data/service/ReviewService.java | 2 +- .../data/service/UserRestService.java | 2 +- .../com/fastaccess/helper/ActivityHelper.java | 18 +- .../com/fastaccess/helper/AnimHelper.java | 16 +- .../java/com/fastaccess/helper/AppHelper.java | 8 +- .../com/fastaccess/helper/BundleConstant.java | 2 +- .../java/com/fastaccess/helper/Bundler.java | 2 +- .../com/fastaccess/helper/FileHelper.java | 4 +- .../com/fastaccess/helper/InputHelper.java | 6 +- .../java/com/fastaccess/helper/Logger.java | 4 +- .../com/fastaccess/helper/ObjectsCompat.java | 2 +- .../fastaccess/helper/ParseDateFormat.java | 4 +- .../com/fastaccess/helper/PrefGetter.java | 6 +- .../com/fastaccess/helper/PrefHelper.java | 4 +- .../java/com/fastaccess/helper/RxHelper.java | 2 +- .../com/fastaccess/helper/ViewHelper.java | 8 +- .../provider/colors/ColorsProvider.java | 6 +- .../provider/fabric/FabricProvider.kt | 18 +- .../provider/fcm/PushNotificationService.java | 2 +- .../provider/gson/ToGsonProvider.java | 2 +- .../provider/markdown/MarkDownProvider.java | 4 +- .../provider/rest/ImgurProvider.java | 2 +- .../provider/rest/LoginProvider.java | 4 +- .../provider/rest/RepoQueryProvider.java | 2 +- .../provider/rest/RestProvider.java | 4 +- .../converters/GithubResponseConverter.java | 2 +- .../interceptors/AuthenticationInterceptor.kt | 2 +- .../interceptors/ContentTypeInterceptor.kt | 2 +- .../interceptors/PaginationInterceptor.java | 2 +- .../provider/rest/jsoup/JsoupProvider.java | 2 +- .../provider/rest/loadmore/OnLoadMore.java | 2 +- .../provider/scheme/LinkParserHelper.java | 4 +- .../provider/scheme/SchemeParser.java | 4 +- .../tasks/git/GithubActionService.java | 8 +- .../provider/tasks/git/ReactionService.java | 6 +- .../NotificationSchedulerJobTask.java | 8 +- .../notification/ReadNotificationService.java | 6 +- .../tasks/slack/SlackInvitationService.java | 2 +- .../fastaccess/provider/theme/ThemeEngine.kt | 2 +- .../provider/timeline/CommentsHelper.java | 4 +- .../provider/timeline/HtmlHelper.java | 6 +- .../provider/timeline/ReactionsProvider.java | 8 +- .../provider/timeline/TimelineProvider.java | 4 +- .../provider/timeline/handler/HrSpan.java | 2 +- .../timeline/handler/ListsHandler.java | 2 +- .../timeline/handler/PreTagHandler.java | 2 +- .../timeline/handler/QuoteHandler.java | 2 +- .../timeline/handler/TableHandler.java | 2 +- .../handler/drawable/DrawableGetter.java | 16 +- .../handler/drawable/GlideDrawableTarget.java | 18 +- .../handler/drawable/UrlDrawable.java | 2 +- .../ui/adapter/AssigneesAdapter.java | 4 +- .../ui/adapter/BranchesAdapter.java | 6 +- .../ui/adapter/CommentsAdapter.java | 2 +- .../ui/adapter/CommitFilesAdapter.java | 4 +- .../ui/adapter/CommitLinesAdapter.java | 4 +- .../fastaccess/ui/adapter/CommitsAdapter.java | 2 +- .../fastaccess/ui/adapter/FeedsAdapter.java | 2 +- .../ui/adapter/FragmentsPagerAdapter.java | 6 +- .../ui/adapter/GistFilesAdapter.java | 4 +- .../fastaccess/ui/adapter/GistsAdapter.java | 2 +- .../fastaccess/ui/adapter/IssuesAdapter.java | 2 +- .../ui/adapter/IssuesTimelineAdapter.java | 4 +- .../ui/adapter/LabelColorsAdapter.java | 4 +- .../fastaccess/ui/adapter/LabelsAdapter.java | 4 +- .../ui/adapter/MilestonesAdapter.java | 2 +- .../ui/adapter/NotificationsAdapter.java | 4 +- .../ui/adapter/PinnedReposAdapter.java | 4 +- .../ui/adapter/PullRequestAdapter.java | 2 +- .../ui/adapter/ReleasesAdapter.java | 2 +- .../ui/adapter/RepoFilePathsAdapter.java | 2 +- .../ui/adapter/RepoFilesAdapter.java | 2 +- .../fastaccess/ui/adapter/ReposAdapter.java | 2 +- .../ui/adapter/ReviewCommentsAdapter.java | 4 +- .../ui/adapter/SearchCodeAdapter.java | 2 +- .../ui/adapter/SettingsAdapter.java | 2 +- .../ui/adapter/SimpleListAdapter.java | 4 +- .../fastaccess/ui/adapter/SpinnerAdapter.java | 2 +- .../fastaccess/ui/adapter/TeamsAdapter.java | 2 +- .../fastaccess/ui/adapter/TopicsAdapter.java | 4 +- .../fastaccess/ui/adapter/UsersAdapter.java | 2 +- .../viewholder/AssigneesViewHolder.java | 4 +- .../viewholder/CommentsViewHolder.java | 6 +- .../viewholder/CommitCommentsViewHolder.kt | 4 +- .../viewholder/CommitLinesViewHolder.java | 8 +- .../adapter/viewholder/CommitsViewHolder.java | 4 +- .../adapter/viewholder/FeedsViewHolder.java | 4 +- .../viewholder/GistFilesViewHolder.java | 2 +- .../adapter/viewholder/GistsViewHolder.java | 4 +- .../viewholder/GroupedReviewsViewHolder.java | 4 +- .../viewholder/IssueDetailsViewHolder.java | 8 +- .../viewholder/IssueTimelineViewHolder.java | 4 +- .../adapter/viewholder/IssuesViewHolder.java | 6 +- .../viewholder/LabelColorsViewHolder.java | 4 +- .../adapter/viewholder/LabelsViewHolder.java | 6 +- .../viewholder/MilestonesViewHolder.java | 4 +- .../NotificationsHeaderViewHolder.java | 6 +- .../viewholder/NotificationsViewHolder.java | 8 +- .../viewholder/PinnedReposViewHolder.java | 4 +- .../viewholder/ProfileOrgsViewHolder.java | 2 +- .../PullRequestFilesViewHolder.java | 4 +- .../viewholder/PullRequestViewHolder.java | 4 +- .../viewholder/PullStatusViewHolder.java | 4 +- .../viewholder/ReleasesViewHolder.java | 4 +- .../viewholder/RepoFilePathsViewHolder.java | 2 +- .../viewholder/RepoFilesViewHolder.java | 2 +- .../adapter/viewholder/ReposViewHolder.java | 4 +- .../viewholder/ReviewCommentsViewHolder.java | 10 +- .../viewholder/SearchCodeViewHolder.java | 4 +- .../adapter/viewholder/SimpleViewHolder.java | 4 +- .../adapter/viewholder/TeamsViewHolder.java | 4 +- .../TimelineCommentsViewHolder.java | 8 +- .../adapter/viewholder/UsersViewHolder.java | 4 +- .../com/fastaccess/ui/base/BaseActivity.java | 24 +- .../ui/base/BaseBottomSheetDialog.java | 12 +- .../ui/base/BaseDialogFragment.java | 10 +- .../com/fastaccess/ui/base/BaseFragment.java | 10 +- .../BaseMvpBottomSheetDialogFragment.java | 12 +- .../com/fastaccess/ui/base/MainNavDrawer.kt | 4 +- .../com/fastaccess/ui/base/mvp/BaseMvp.java | 6 +- .../ui/base/mvp/presenter/BasePresenter.java | 7 +- .../modules/about/FastHubAboutActivity.java | 6 +- .../changelog/ChangelogBottomSheetDialog.java | 4 +- .../ui/modules/changelog/ChangelogMvp.java | 2 +- .../ui/modules/code/CodeViewerActivity.java | 4 +- .../ui/modules/editor/EditorActivity.kt | 73 +++--- .../editor/comment/CommentEditorFragment.kt | 6 +- .../popup/EditorLinkImageDialogFragment.java | 6 +- .../editor/popup/EditorLinkImageMvp.java | 4 +- .../popup/EditorLinkImagePresenter.java | 4 +- .../ui/modules/feeds/FeedsFragment.java | 8 +- .../fastaccess/ui/modules/feeds/FeedsMvp.java | 6 +- .../ui/modules/feeds/FeedsPresenter.java | 4 +- .../filter/issues/FilterIssuesActivity.java | 2 +- .../issues/FilterIssuesActivityMvp.java | 2 +- .../issues/FilterIssuesActivityPresenter.java | 2 +- .../issues/fragment/FilterIssueFragment.java | 8 +- .../issues/fragment/FilterIssuePresenter.java | 4 +- .../issues/fragment/FilterIssuesMvp.java | 6 +- .../ui/modules/gists/GistsFragment.java | 8 +- .../ui/modules/gists/GistsListActivity.java | 8 +- .../fastaccess/ui/modules/gists/GistsMvp.java | 6 +- .../ui/modules/gists/GistsPresenter.java | 4 +- .../gists/create/CreateGistActivity.java | 8 +- .../modules/gists/create/CreateGistMvp.java | 2 +- .../gists/create/CreateGistPresenter.java | 2 +- .../create/dialog/AddGistBottomSheetDialog.kt | 6 +- .../ui/modules/gists/gist/GistActivity.java | 14 +- .../ui/modules/gists/gist/GistMvp.java | 4 +- .../ui/modules/gists/gist/GistPresenter.java | 4 +- .../gist/comments/GistCommentsFragment.java | 8 +- .../gists/gist/comments/GistCommentsMvp.java | 6 +- .../gist/comments/GistCommentsPresenter.java | 4 +- .../gist/files/GistFilesListFragment.java | 6 +- .../gists/gist/files/GistFilesListMvp.java | 4 +- .../gist/files/GistFilesListPresenter.java | 4 +- .../gists/starred/StarredGistsFragment.java | 8 +- .../gists/starred/StarredGistsMvp.java | 6 +- .../gists/starred/StarredGistsPresenter.java | 4 +- .../ui/modules/login/LoginActivity.java | 12 +- .../fastaccess/ui/modules/login/LoginMvp.java | 4 +- .../ui/modules/login/LoginPresenter.java | 4 +- .../login/chooser/LoginChooserActivity.kt | 4 +- .../ui/modules/main/MainActivity.java | 10 +- .../fastaccess/ui/modules/main/MainMvp.java | 10 +- .../ui/modules/main/MainPresenter.java | 12 +- .../modules/main/donation/DonateActivity.kt | 79 +++--- .../main/donation/DonationActivity.java | 4 +- .../modules/main/drawer/MainDrawerFragment.kt | 2 +- .../modules/main/issues/MyIssuesFragment.java | 8 +- .../ui/modules/main/issues/MyIssuesMvp.java | 6 +- .../main/issues/MyIssuesPresenter.java | 4 +- .../issues/pager/MyIssuesPagerFragment.java | 8 +- .../FastHubNotificationDialog.kt | 2 +- .../main/orgs/OrgListDialogFragment.java | 10 +- .../modules/main/orgs/OrgListDialogMvp.java | 4 +- .../main/orgs/OrgListDialogPresenter.java | 2 +- .../main/premium/GmsTaskListeners.java | 2 +- .../modules/main/premium/PremiumActivity.kt | 2 +- .../pullrequests/MyPullRequestFragment.java | 8 +- .../main/pullrequests/MyPullRequestsMvp.java | 6 +- .../pullrequests/MyPullRequestsPresenter.java | 4 +- .../pager/MyPullsPagerFragment.java | 8 +- .../notification/NotificationActivity.java | 8 +- .../all/AllNotificationsFragment.java | 6 +- .../notification/all/AllNotificationsMvp.java | 6 +- .../all/AllNotificationsPresenter.java | 2 +- .../OnNotificationChangedListener.java | 2 +- .../unread/UnreadNotificationMvp.java | 6 +- .../unread/UnreadNotificationsFragment.java | 6 +- .../unread/UnreadNotificationsPresenter.java | 2 +- .../modules/parser/LinksParserActivity.java | 4 +- .../modules/pinned/PinnedReposActivity.java | 6 +- .../pinned/gist/PinnedGistFragment.java | 4 +- .../ui/modules/pinned/gist/PinnedGistMvp.java | 4 +- .../pinned/gist/PinnedGistPresenter.java | 2 +- .../pinned/issue/PinnedIssueFragment.java | 4 +- .../modules/pinned/issue/PinnedIssueMvp.java | 4 +- .../pinned/issue/PinnedIssuePresenter.java | 2 +- .../PinnedPullRequestFragment.java | 4 +- .../pullrequest/PinnedPullRequestMvp.java | 4 +- .../PinnedPullRequestPresenter.java | 2 +- .../pinned/repo/PinnedReposFragment.java | 4 +- .../modules/pinned/repo/PinnedReposMvp.java | 4 +- .../pinned/repo/PinnedReposPresenter.java | 2 +- .../modules/profile/ProfilePagerFragment.java | 7 +- .../followers/ProfileFollowersFragment.java | 8 +- .../followers/ProfileFollowersMvp.java | 6 +- .../followers/ProfileFollowersPresenter.java | 4 +- .../following/ProfileFollowingFragment.java | 8 +- .../following/ProfileFollowingMvp.java | 6 +- .../following/ProfileFollowingPresenter.java | 4 +- .../profile/gists/ProfileGistsFragment.java | 8 +- .../profile/gists/ProfileGistsMvp.java | 6 +- .../profile/gists/ProfileGistsPresenter.java | 4 +- .../org/OrgProfileOverviewFragment.java | 8 +- .../profile/org/OrgProfileOverviewMvp.java | 4 +- .../org/OrgProfileOverviewPresenter.java | 4 +- .../org/members/OrgMembersFragment.java | 8 +- .../profile/org/members/OrgMembersMvp.java | 6 +- .../org/members/OrgMembersPresenter.java | 4 +- .../profile/org/project/OrgProjectActivity.kt | 18 +- .../profile/org/repos/OrgReposFragment.java | 8 +- .../profile/org/repos/OrgReposMvp.java | 6 +- .../profile/org/repos/OrgReposPresenter.java | 4 +- .../profile/org/teams/OrgTeamFragment.java | 8 +- .../modules/profile/org/teams/OrgTeamMvp.java | 6 +- .../profile/org/teams/OrgTeamPresenter.java | 4 +- .../org/teams/details/TeamPagerActivity.java | 8 +- .../details/members/TeamMembersFragment.java | 8 +- .../teams/details/members/TeamMembersMvp.java | 6 +- .../details/members/TeamMembersPresenter.java | 4 +- .../details/repos/TeamReposFragment.java | 8 +- .../org/teams/details/repos/TeamReposMvp.java | 6 +- .../details/repos/TeamReposPresenter.java | 4 +- .../overview/ProfileOverviewFragment.java | 16 +- .../profile/overview/ProfileOverviewMvp.java | 4 +- .../overview/ProfileOverviewPresenter.java | 4 +- .../ProfileReposFilterBottomSheetDialog.java | 4 +- .../profile/repos/ProfileReposFragment.java | 8 +- .../profile/repos/ProfileReposMvp.java | 6 +- .../profile/repos/ProfileReposPresenter.java | 4 +- .../starred/ProfileStarredFragment.java | 8 +- .../profile/starred/ProfileStarredMvp.java | 6 +- .../starred/ProfileStarredPresenter.java | 4 +- .../ui/modules/repos/DummyFragment.java | 4 +- .../ui/modules/repos/RepoPagerActivity.java | 12 +- .../ui/modules/repos/RepoPagerMvp.java | 10 +- .../ui/modules/repos/RepoPagerPresenter.java | 10 +- .../repos/code/RepoCodePagerFragment.java | 8 +- .../code/commit/RepoCommitsFragment.java | 8 +- .../repos/code/commit/RepoCommitsMvp.java | 6 +- .../code/commit/RepoCommitsPresenter.java | 4 +- .../commit/details/CommitPagerActivity.java | 12 +- .../code/commit/details/CommitPagerMvp.java | 4 +- .../commit/details/CommitPagerPresenter.java | 4 +- .../comments/CommitCommentsFragment.java | 8 +- .../details/comments/CommitCommentsMvp.java | 6 +- .../comments/CommitCommentsPresenter.java | 4 +- .../details/files/CommitFilesFragment.java | 4 +- .../commit/details/files/CommitFilesMvp.java | 4 +- .../details/files/CommitFilesPresenter.java | 4 +- .../details/files/CommitFilesSingleton.java | 4 +- .../history/FileCommitHistoryActivity.kt | 40 +-- .../commit/viewer/FullCommitFileActivity.java | 2 +- .../RepoContributorsFragment.java | 8 +- .../contributors/RepoContributorsMvp.java | 6 +- .../RepoContributorsPresenter.java | 4 +- .../repos/code/files/RepoFilesFragment.java | 6 +- .../repos/code/files/RepoFilesMvp.java | 6 +- .../repos/code/files/RepoFilesPresenter.java | 6 +- .../files/activity/RepoFilesActivity.java | 4 +- .../files/paths/RepoFilePathFragment.java | 8 +- .../code/files/paths/RepoFilePathMvp.java | 4 +- .../files/paths/RepoFilePathPresenter.java | 4 +- .../repos/code/prettifier/ViewerFragment.java | 8 +- .../repos/code/prettifier/ViewerMvp.java | 6 +- .../code/prettifier/ViewerPresenter.java | 4 +- .../code/releases/ReleasesListActivity.java | 4 +- .../code/releases/RepoReleasesFragment.java | 8 +- .../repos/code/releases/RepoReleasesMvp.java | 6 +- .../code/releases/RepoReleasesPresenter.java | 4 +- .../assignees/AssigneesDialogFragment.java | 8 +- .../repos/extras/assignees/AssigneesMvp.java | 4 +- .../extras/assignees/AssigneesPresenter.java | 2 +- .../repos/extras/branches/BranchesFragment.kt | 2 +- .../branches/pager/BranchesPagerFragment.kt | 21 +- .../extras/labels/LabelsDialogFragment.java | 8 +- .../repos/extras/labels/LabelsMvp.java | 4 +- .../repos/extras/labels/LabelsPresenter.java | 4 +- .../create/CreateLabelDialogFragment.java | 8 +- .../extras/labels/create/CreateLabelMvp.java | 2 +- .../labels/create/CreateLabelPresenter.java | 2 +- .../extras/license/RepoLicenseBottomSheet.kt | 25 +- .../locking/LockIssuePrBottomSheetDialog.kt | 2 +- .../milestone/MilestoneDialogFragment.java | 10 +- .../repos/extras/milestone/MilestoneMvp.java | 4 +- .../extras/milestone/MilestonePresenter.java | 2 +- .../create/CreateMilestoneDialogFragment.java | 10 +- .../milestone/create/CreateMilestoneMvp.java | 4 +- .../create/CreateMilestonePresenter.java | 4 +- .../create/MilestoneDialogFragment.java | 4 +- .../extras/misc/RepoMiscDialogFragment.java | 12 +- .../repos/extras/misc/RepoMiscMVp.java | 6 +- .../repos/extras/misc/RepoMiscPresenter.java | 4 +- .../extras/popup/IssuePopupFragment.java | 12 +- .../repos/extras/popup/IssuePopupMvp.java | 2 +- .../extras/popup/IssuePopupPresenter.java | 2 +- .../modules/repos/git/EditRepoFileActivity.kt | 6 +- .../delete/DeleteFileBottomSheetFragment.kt | 4 +- .../repos/issues/RepoIssuesPagerFragment.java | 8 +- .../repos/issues/RepoIssuesPagerMvp.java | 2 +- .../issues/create/CreateIssueActivity.java | 12 +- .../repos/issues/create/CreateIssueMvp.java | 4 +- .../issues/create/CreateIssuePresenter.java | 4 +- .../issue/RepoClosedIssuesFragment.java | 8 +- .../repos/issues/issue/RepoIssuesMvp.java | 6 +- .../issues/issue/RepoIssuesPresenter.java | 4 +- .../issue/RepoOpenedIssuesFragment.java | 8 +- .../issue/details/IssuePagerActivity.java | 12 +- .../issues/issue/details/IssuePagerMvp.java | 4 +- .../issue/details/IssuePagerPresenter.java | 4 +- .../timeline/IssueTimelineFragment.java | 6 +- .../details/timeline/IssueTimelineMvp.java | 8 +- .../timeline/IssueTimelinePresenter.java | 4 +- .../projects/RepoProjectsFragmentPager.kt | 36 +-- .../projects/columns/ProjectColumnFragment.kt | 81 +++--- .../crud/ProjectCurdDialogFragment.kt | 6 +- .../projects/details/ProjectPagerActivity.kt | 2 +- .../projects/details/ProjectPagerPresenter.kt | 54 ++-- .../projects/list/RepoProjectFragment.kt | 6 +- .../projects/list/RepoProjectPresenter.kt | 240 +++++++++--------- .../RepoPullRequestPagerFragment.java | 8 +- .../RepoPullRequestPagerMvp.java | 2 +- .../pull_request/RepoPullRequestFragment.java | 8 +- .../pull_request/RepoPullRequestMvp.java | 6 +- .../RepoPullRequestPresenter.java | 4 +- .../details/PullRequestPagerActivity.java | 16 +- .../details/PullRequestPagerMvp.java | 4 +- .../details/PullRequestPagerPresenter.java | 4 +- .../commits/PullRequestCommitsFragment.java | 8 +- .../commits/PullRequestCommitsMvp.java | 6 +- .../commits/PullRequestCommitsPresenter.java | 4 +- .../files/PullRequestFilesFragment.java | 8 +- .../details/files/PullRequestFilesMvp.java | 6 +- .../files/PullRequestFilesPresenter.java | 4 +- .../FullScreenFileChangeActivity.kt | 4 +- .../timeline/PullRequestTimelineFragment.java | 6 +- .../timeline/PullRequestTimelineMvp.java | 8 +- .../PullRequestTimelinePresenter.java | 4 +- .../merge/MergePullReqeustMvp.java | 2 +- .../merge/MergePullRequestDialogFragment.java | 8 +- .../reactions/ReactionsDialogFragment.java | 10 +- .../repos/reactions/ReactionsDialogMvp.java | 4 +- .../reactions/ReactionsDialogPresenter.java | 4 +- .../ui/modules/repos/wiki/WikiActivity.kt | 4 +- .../reviews/AddReviewDialogFragment.kt | 78 +++--- .../reviews/changes/ReviewChangesActivity.kt | 6 +- .../ui/modules/search/SearchActivity.java | 10 +- .../ui/modules/search/SearchMvp.java | 8 +- .../ui/modules/search/SearchPresenter.java | 4 +- .../ui/modules/search/SearchUserActivity.kt | 8 +- .../search/code/SearchCodeFragment.java | 8 +- .../ui/modules/search/code/SearchCodeMvp.java | 6 +- .../search/code/SearchCodePresenter.java | 4 +- .../search/issues/SearchIssuesFragment.java | 8 +- .../search/issues/SearchIssuesMvp.java | 6 +- .../search/issues/SearchIssuesPresenter.java | 4 +- .../search/repos/SearchReposFragment.java | 8 +- .../modules/search/repos/SearchReposMvp.java | 6 +- .../search/repos/SearchReposPresenter.java | 4 +- .../repos/files/SearchFileActivity.java | 6 +- .../search/repos/files/SearchFileMvp.java | 2 +- .../repos/files/SearchFilePresenter.java | 2 +- .../search/users/SearchUsersFragment.java | 8 +- .../modules/search/users/SearchUsersMvp.java | 6 +- .../search/users/SearchUsersPresenter.java | 4 +- .../settings/LanguageBottomSheetDialog.java | 4 +- .../ui/modules/settings/SettingsActivity.java | 2 +- .../settings/SlackBottomSheetDialog.java | 4 +- .../category/SettingsCategoryActivity.java | 2 +- .../category/SettingsCategoryFragment.java | 8 +- .../sound/NotificationSoundBottomSheet.kt | 14 +- .../modules/theme/fragment/ThemeFragment.kt | 6 +- .../theme/fragment/ThemeFragmentMvp.kt | 2 +- .../ui/modules/trending/TrendingActivity.kt | 6 +- .../ui/modules/trending/TrendingMvp.kt | 2 +- .../trending/fragment/TrendingFragment.kt | 2 +- .../ui/modules/user/UserPagerActivity.java | 10 +- .../ui/modules/user/UserPagerMvp.java | 2 +- .../ui/modules/user/UserPagerPresenter.java | 2 +- .../ui/widgets/AppbarRefreshLayout.java | 4 +- .../ui/widgets/AutoLinearLayout.java | 2 +- .../fastaccess/ui/widgets/AvatarLayout.java | 18 +- .../ui/widgets/CardsPagerTransformerBasic.kt | 2 +- .../ui/widgets/ColorPickerPreference.java | 4 +- .../fastaccess/ui/widgets/DiffLineSpan.java | 8 +- .../widgets/FloatingActionButtonBehavior.java | 8 +- .../ui/widgets/FontAutoCompleteEditText.java | 4 +- .../com/fastaccess/ui/widgets/FontButton.java | 4 +- .../fastaccess/ui/widgets/FontCheckbox.java | 4 +- .../fastaccess/ui/widgets/FontEditText.java | 4 +- .../ui/widgets/FontRadioButton.java | 4 +- .../fastaccess/ui/widgets/FontSwitchView.java | 4 +- .../fastaccess/ui/widgets/FontTextView.java | 12 +- .../ui/widgets/ForegroundImageView.java | 8 +- .../ui/widgets/ForegroundRelativeLayout.java | 2 +- .../com/fastaccess/ui/widgets/LabelSpan.java | 6 +- .../ui/widgets/NestedCoordinatorLayout.java | 8 +- .../ui/widgets/SpannableBuilder.java | 2 +- .../fastaccess/ui/widgets/StateLayout.java | 6 +- .../fastaccess/ui/widgets/TabletBehavior.java | 6 +- .../fastaccess/ui/widgets/ViewPagerView.java | 8 +- .../ui/widgets/color/ColorGenerator.java | 6 +- .../contributions/ContributionsProvider.java | 4 +- .../ui/widgets/dialog/ListDialogView.java | 4 +- .../ui/widgets/dialog/MessageDialogView.java | 4 +- .../dialog/ProgressDialogFragment.java | 6 +- .../ui/widgets/markdown/MarkDownLayout.kt | 6 +- .../ui/widgets/markdown/MarkdownEditText.kt | 26 +- .../recyclerview/BaseRecyclerAdapter.java | 10 +- .../widgets/recyclerview/BaseViewHolder.java | 8 +- .../recyclerview/BottomPaddingDecoration.java | 10 +- .../recyclerview/DynamicRecyclerView.java | 12 +- .../recyclerview/InsetDividerDecoration.java | 8 +- .../recyclerview/ProgressBarViewHolder.java | 2 +- .../layout_manager/GridManager.java | 4 +- .../layout_manager/LinearManager.java | 4 +- .../layout_manager/StaggeredManager.java | 4 +- .../recyclerview/scroll/InfiniteScroll.java | 8 +- .../scroll/RecyclerViewFastScroller.java | 12 +- .../com/prettifier/pretty/NestedWebView.java | 10 +- .../prettifier/pretty/PrettifyWebView.java | 4 +- .../pretty/helper/CodeThemesHelper.java | 2 +- .../pretty/helper/GithubHelper.java | 4 +- .../pretty/helper/PrettifyHelper.java | 2 +- .../main_layouts/layout-land/bottom_fab.xml | 4 +- .../layout-land/header_title_with_toolbar.xml | 8 +- .../layout-land/repo_file_header_layout.xml | 2 +- .../layout-sw600dp/bottom_fab.xml | 2 +- .../header_title_with_toolbar.xml | 8 +- .../repo_file_header_layout.xml | 2 +- .../layout/accounts_menu_layout.xml | 16 +- .../layout/activity_fragment_layout.xml | 8 +- .../layout/activity_main_view.xml | 8 +- .../layout/activity_search_file.xml | 14 +- .../layout/activity_search_user.xml | 8 +- .../layout/add_gist_file_layout.xml | 10 +- .../layout/add_review_dialog_layout.xml | 2 +- .../main_layouts/layout/bottom_fab.xml | 2 +- .../layout/centered_tabbed_viewpager.xml | 2 +- .../layout/commit_file_full_layout.xml | 8 +- .../layout/commit_pager_activity.xml | 24 +- .../layout/create_gist_layout.xml | 14 +- .../layout/create_issue_layout.xml | 28 +- .../layout/create_label_layout.xml | 16 +- .../layout/create_milestone_layout.xml | 26 +- .../layout/delete_repo_file_layout.xml | 20 +- .../edit_project_column_note_layout.xml | 4 +- .../layout/edit_repo_file_layout.xml | 28 +- .../layout/emoji_popup_layout.xml | 8 +- .../layout/filter_bottom_sheet.xml | 16 +- .../layout/filter_issues_prs_layout.xml | 16 +- .../full_screen_file_changes_layout.xml | 10 +- .../layout/general_viewer_layout.xml | 4 +- .../layout/gists_activity_layout.xml | 18 +- .../layout/gists_pager_layout.xml | 20 +- .../layout/header_title_with_toolbar.xml | 8 +- .../layout/issue_pager_activity.xml | 20 +- .../layout/issue_popup_layout.xml | 22 +- .../layout/login_chooser_layout.xml | 16 +- .../main_layouts/layout/login_form_layout.xml | 38 +-- .../layout/main_nav_fragment_layout.xml | 2 +- .../markdown_link_image_dialog_layout.xml | 12 +- .../layout/merge_dialog_layout.xml | 8 +- .../layout/notification_activity_layout.xml | 16 +- .../notifications_bottom_sheet_layout.xml | 4 +- .../main_layouts/layout/picker_dialog.xml | 4 +- .../layout/pro_features_layout.xml | 8 +- .../layout/project_columns_layout.xml | 12 +- .../layout/projects_activity_layout.xml | 4 +- .../layout/repo_file_header_layout.xml | 2 +- .../layout/repo_pager_activity.xml | 12 +- .../layout/review_changes_bottom_layout.xml | 4 +- .../layout/review_comment_dialog_layout.xml | 4 +- .../main_layouts/layout/search_layout.xml | 14 +- .../layout/support_development_layout.xml | 34 +-- .../layout/tabbed_pager_layout.xml | 10 +- .../main_layouts/layout/tabbed_viewpager.xml | 2 +- .../main_layouts/layout/theme_code_layout.xml | 16 +- .../main_layouts/layout/theme_layout.xml | 40 +-- .../layout/toolbar_activity_layout.xml | 10 +- .../layout/trending_activity_layout.xml | 14 +- .../layout/view_pager_activity_layout.xml | 6 +- .../layout/wiki_activity_layout.xml | 10 +- .../layout-land/appbar_start_margin.xml | 6 +- .../layout-sw600dp/appbar_start_margin.xml | 6 +- .../layout/appbar_elevation_dark.xml | 6 +- .../layout/appbar_start_margin.xml | 6 +- .../layout/appbar_tabbed_elevation.xml | 8 +- .../layout/dialog_guide_layout.xml | 8 +- .../layout/lock_issue_pr_dialog.xml | 6 +- .../other_layouts/layout/message_dialog.xml | 4 +- .../other_layouts/layout/nav_menu_layout.xml | 6 +- .../layout/simple_footer_list_dialog.xml | 8 +- .../row_layouts/layout/branches_row_item.xml | 2 +- .../layout/column_card_row_layout.xml | 4 +- .../layout/commit_file_row_item.xml | 4 +- .../layout/commit_line_row_item.xml | 6 +- .../layout/fasthub_notification_row_item.xml | 4 +- .../layout/gist_files_row_item.xml | 4 +- .../grouped_review_timeline_row_item.xml | 4 +- .../layout/issue_no_image_row_item.xml | 2 +- .../row_layouts/layout/issue_row_item.xml | 2 +- .../row_layouts/layout/label_row_item.xml | 2 +- .../layout/no_emojies_comments_row_item.xml | 2 +- .../layout/notification_header_row_item.xml | 2 +- .../layout/notifications_row_item.xml | 4 +- .../layout/org_profile_overview_layout.xml | 8 +- .../layout/profile_overview_layout.xml | 20 +- .../layout/pullrequest_file_row_item.xml | 4 +- .../row_layouts/layout/trending_row_item.xml | 4 +- build.gradle | 10 +- 578 files changed, 2120 insertions(+), 2039 deletions(-) create mode 100644 app/src/main/java/com/fastaccess/GlideModule.kt diff --git a/app/build.gradle b/app/build.gradle index a86ec646..33098de6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,13 +24,13 @@ android { storePassword((buildProperties.secrets['android_store_password'] | buildProperties.notThere['android_store_password']).string) } } - compileSdkVersion 27 + compileSdkVersion 29 defaultConfig { applicationId "com.fastaccess.github" minSdkVersion 21 - targetSdkVersion 27 - versionCode 467 - versionName "4.6.7" + targetSdkVersion 29 + versionCode 468 + versionName "4.6.8" buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string buildConfigString "IMGUR_CLIENT_ID", (buildProperties.secrets['imgur_client_id'] | buildProperties.notThere['imgur_client_id']).string @@ -38,7 +38,7 @@ android { buildConfigField "String", "REST_URL", '"https://api.github.com/"' buildConfigField "String", "IMGUR_URL", '"https://api.imgur.com/3/"' multiDexEnabled true - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { includeCompileClasspath true @@ -89,7 +89,7 @@ android { } configurations { - all*.exclude module: 'annotation' + all*.exclude module: 'javax.annotation' all*.exclude group: 'org.jetbrains', module: 'annotations-java5' } @@ -118,13 +118,15 @@ repositories { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation "com.android.support:appcompat-v7:${supportVersion}" - implementation "com.android.support:design:${supportVersion}" - implementation "com.android.support:cardview-v7:${supportVersion}" - implementation "com.android.support:recyclerview-v7:${supportVersion}" - implementation "com.android.support:preference-v14:${supportVersion}" - implementation "com.android.support:customtabs:${supportVersion}" - implementation "com.android.support:palette-v7:${supportVersion}" + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.cardview:cardview:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.legacy:legacy-preference-v14:1.0.0' + implementation 'androidx.browser:browser:1.2.0' + implementation 'androidx.palette:palette:1.0.0' + implementation 'androidx.annotation:annotation:1.1.0' + implementation 'androidx.core:core:1.1.0' implementation "net.grandcentrix.thirtyinch:thirtyinch:${thirtyinchVersion}" implementation "net.grandcentrix.thirtyinch:thirtyinch-rx2:${thirtyinchVersion}" implementation "com.squareup.retrofit2:retrofit:${retrofit}" @@ -135,9 +137,9 @@ dependencies { implementation 'cn.gavinliu:ShapedImageView:0.8.7' implementation "com.jakewharton:butterknife:${butterKnifeVersion}" implementation 'it.sephiroth.android.library.bottomnavigation:bottom-navigation:2.0.2' - implementation 'io.reactivex.rxjava2:rxjava:2.1.10' - implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' - implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0' + implementation 'io.reactivex.rxjava2:rxjava:2.2.15' + implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' + implementation 'com.squareup.okhttp3:logging-interceptor:4.2.1' implementation 'com.annimon:stream:1.1.9' implementation 'com.github.GrenderG:Toasty:1.1.3' implementation 'com.github.k0shk0sh:RetainedDateTimePickers:1.0.2' @@ -154,10 +156,10 @@ dependencies { implementation "com.atlassian.commonmark:commonmark-ext-gfm-tables:${commonmark}" implementation "com.atlassian.commonmark:commonmark-ext-ins:${commonmark}" implementation "com.atlassian.commonmark:commonmark-ext-yaml-front-matter:${commonmark}" - implementation "com.google.firebase:firebase-core:${gms}" - implementation "com.google.firebase:firebase-messaging:${gms}" - implementation "com.google.firebase:firebase-database:${gms}" - implementation "com.google.android.gms:play-services-base:${gms}" + implementation "com.google.firebase:firebase-core:17.2.1" + implementation "com.google.firebase:firebase-messaging:20.1.0" + implementation "com.google.firebase:firebase-database:19.2.0" + implementation "com.google.android.gms:play-services-base:17.1.0" implementation('com.github.b3er.rxfirebase:firebase-database-kotlin:11.2.0') { transitive = false } implementation('com.github.b3er.rxfirebase:firebase-database:11.2.0') { transitive = false } implementation('com.crashlytics.sdk.android:crashlytics:2.9.0@aar') { transitive = true } @@ -170,7 +172,7 @@ dependencies { implementation("com.apollographql.apollo:apollo-runtime:1.2.2") implementation 'com.jaredrummler:android-device-names:1.1.5' implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.1.0' - implementation 'com.airbnb.android:lottie:2.2.5' + implementation 'com.airbnb.android:lottie:3.0.7' implementation 'com.firebase:firebase-jobdispatcher:0.8.2' compileOnly "org.projectlombok:lombok:${lombokVersion}" @@ -180,6 +182,7 @@ dependencies { kapt "com.jakewharton:butterknife-compiler:${butterKnifeVersion}" kapt 'com.github.matthiasrobbers:shortbread-compiler:1.0.1' kapt "io.requery:requery-processor:${requery}" + kapt "com.github.bumptech.glide:compiler:$glideVersion" } diff --git a/app/src/main/java/com/fastaccess/App.java b/app/src/main/java/com/fastaccess/App.java index e5e6006f..d770b1e9 100644 --- a/app/src/main/java/com/fastaccess/App.java +++ b/app/src/main/java/com/fastaccess/App.java @@ -1,8 +1,8 @@ package com.fastaccess; import android.app.Application; -import android.support.annotation.NonNull; -import android.support.v7.preference.PreferenceManager; +import androidx.annotation.NonNull; +import androidx.preference.PreferenceManager; import com.fastaccess.data.dao.model.Models; import com.fastaccess.helper.DeviceNameGetter; diff --git a/app/src/main/java/com/fastaccess/GlideModule.kt b/app/src/main/java/com/fastaccess/GlideModule.kt new file mode 100644 index 00000000..bcb42df2 --- /dev/null +++ b/app/src/main/java/com/fastaccess/GlideModule.kt @@ -0,0 +1,8 @@ +package com.fastaccess + +import com.bumptech.glide.annotation.GlideModule +import com.bumptech.glide.module.AppGlideModule + + +@GlideModule +class GlideModule : AppGlideModule() \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/data/dao/CommitFileChanges.java b/app/src/main/java/com/fastaccess/data/dao/CommitFileChanges.java index 66311685..074f72f8 100644 --- a/app/src/main/java/com/fastaccess/data/dao/CommitFileChanges.java +++ b/app/src/main/java/com/fastaccess/data/dao/CommitFileChanges.java @@ -2,8 +2,8 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/data/dao/CommitLinesModel.java b/app/src/main/java/com/fastaccess/data/dao/CommitLinesModel.java index 89e9df3a..9e8c9b68 100644 --- a/app/src/main/java/com/fastaccess/data/dao/CommitLinesModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/CommitLinesModel.java @@ -2,8 +2,8 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.helper.InputHelper; diff --git a/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt b/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt index 3489fbee..966520ac 100644 --- a/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt @@ -9,23 +9,26 @@ import com.fastaccess.helper.writeBoolean /** * Created by Hashemsergani on 01/09/2017. */ -data class EditRepoFileModel(val login: String, - val repoId: String, - val path: String?, - val ref: String, - val sha: String?, - val contentUrl: String?, - val fileName: String?, - val isEdit: Boolean) : KotlinParcelable { +data class EditRepoFileModel( + val login: String, + val repoId: String, + val path: String?, + val ref: String, + val sha: String?, + val contentUrl: String?, + val fileName: String?, + val isEdit: Boolean +) : KotlinParcelable { constructor(parcel: Parcel) : this( - parcel.readString(), - parcel.readString(), - parcel.readString(), - parcel.readString(), - parcel.readString(), - parcel.readString(), - parcel.readString(), - parcel.readBoolean()) + parcel.readString() ?: "", + parcel.readString() ?: "", + parcel.readString() ?: "", + parcel.readString() ?: "", + parcel.readString() ?: "", + parcel.readString() ?: "", + parcel.readString() ?: "", + parcel.readBoolean() + ) override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) { writeString(login) diff --git a/app/src/main/java/com/fastaccess/data/dao/FragmentPagerAdapterModel.java b/app/src/main/java/com/fastaccess/data/dao/FragmentPagerAdapterModel.java index e15b1326..c945600f 100644 --- a/app/src/main/java/com/fastaccess/data/dao/FragmentPagerAdapterModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/FragmentPagerAdapterModel.java @@ -1,9 +1,9 @@ package com.fastaccess.data.dao; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java b/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java index d52b86c0..7517823a 100644 --- a/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java @@ -1,6 +1,6 @@ package com.fastaccess.data.dao; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/data/dao/IssueEventAdapterModel.java b/app/src/main/java/com/fastaccess/data/dao/IssueEventAdapterModel.java index 915df44b..37e81286 100644 --- a/app/src/main/java/com/fastaccess/data/dao/IssueEventAdapterModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/IssueEventAdapterModel.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.annimon.stream.Stream; import com.fastaccess.data.dao.model.Issue; diff --git a/app/src/main/java/com/fastaccess/data/dao/IssueRequestModel.java b/app/src/main/java/com/fastaccess/data/dao/IssueRequestModel.java index 73a7a805..7ed7449f 100644 --- a/app/src/main/java/com/fastaccess/data/dao/IssueRequestModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/IssueRequestModel.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/data/dao/NameParser.java b/app/src/main/java/com/fastaccess/data/dao/NameParser.java index 11f0ffd5..4c25b006 100644 --- a/app/src/main/java/com/fastaccess/data/dao/NameParser.java +++ b/app/src/main/java/com/fastaccess/data/dao/NameParser.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao; import android.net.Uri; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.helper.InputHelper; import com.fastaccess.provider.scheme.LinkParserHelper; diff --git a/app/src/main/java/com/fastaccess/data/dao/PullRequestAdapterModel.java b/app/src/main/java/com/fastaccess/data/dao/PullRequestAdapterModel.java index 92d2451f..bd1d5586 100644 --- a/app/src/main/java/com/fastaccess/data/dao/PullRequestAdapterModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/PullRequestAdapterModel.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.annimon.stream.Stream; import com.fastaccess.data.dao.model.IssueEvent; diff --git a/app/src/main/java/com/fastaccess/data/dao/PullsIssuesParser.java b/app/src/main/java/com/fastaccess/data/dao/PullsIssuesParser.java index 59333a99..6904db6e 100644 --- a/app/src/main/java/com/fastaccess/data/dao/PullsIssuesParser.java +++ b/app/src/main/java/com/fastaccess/data/dao/PullsIssuesParser.java @@ -3,7 +3,7 @@ package com.fastaccess.data.dao; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.helper.InputHelper; diff --git a/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java b/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java index ee84a907..16edfeca 100644 --- a/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.google.gson.annotations.SerializedName; diff --git a/app/src/main/java/com/fastaccess/data/dao/RepoPathsManager.java b/app/src/main/java/com/fastaccess/data/dao/RepoPathsManager.java index 2e1bbd0a..5f112186 100644 --- a/app/src/main/java/com/fastaccess/data/dao/RepoPathsManager.java +++ b/app/src/main/java/com/fastaccess/data/dao/RepoPathsManager.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.RepoFile; diff --git a/app/src/main/java/com/fastaccess/data/dao/SettingsModel.java b/app/src/main/java/com/fastaccess/data/dao/SettingsModel.java index f95ea515..a844c85f 100644 --- a/app/src/main/java/com/fastaccess/data/dao/SettingsModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/SettingsModel.java @@ -1,6 +1,6 @@ package com.fastaccess.data.dao; -import android.support.annotation.IntDef; +import androidx.annotation.IntDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/app/src/main/java/com/fastaccess/data/dao/TabsCountStateModel.java b/app/src/main/java/com/fastaccess/data/dao/TabsCountStateModel.java index dcb45ede..ca65a36e 100644 --- a/app/src/main/java/com/fastaccess/data/dao/TabsCountStateModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/TabsCountStateModel.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.DrawableRes; +import androidx.annotation.DrawableRes; import java.io.Serializable; diff --git a/app/src/main/java/com/fastaccess/data/dao/TimelineModel.java b/app/src/main/java/com/fastaccess/data/dao/TimelineModel.java index 9fe29ba7..1e4e15a9 100644 --- a/app/src/main/java/com/fastaccess/data/dao/TimelineModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/TimelineModel.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.Comment; import com.fastaccess.data.dao.model.Issue; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractComment.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractComment.java index ffcb0991..806f83d1 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractComment.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractComment.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.ReactionsModel; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractCommit.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractCommit.java index 0bdea8dd..32fe38a9 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractCommit.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractCommit.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.CommitFileListModel; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractEvent.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractEvent.java index 32f97459..ee9a0a62 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractEvent.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractEvent.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.TextUtils; import com.fastaccess.App; @@ -42,7 +42,7 @@ import lombok.NoArgsConstructor; @Nullable String login; @NonNull - public static Disposable save(@android.support.annotation.Nullable List events, @android.support.annotation.Nullable String user) { + public static Disposable save(@androidx.annotation.Nullable List events, @androidx.annotation.Nullable String user) { return RxHelper.getSingle(Single.fromPublisher(s -> { try { Login login = Login.getUser(); diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java index 29547a0f..b8721fd5 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractFastHubNotification.java @@ -2,8 +2,8 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractGist.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractGist.java index 6177812a..c9e8542e 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractGist.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractGist.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.annimon.stream.Collectors; import com.annimon.stream.LongStream; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssue.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssue.java index 86c886f3..744fce42 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssue.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssue.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.LabelListModel; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssueEvent.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssueEvent.java index 74f1176c..1621e0d3 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssueEvent.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractIssueEvent.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.LabelModel; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java index 86a6c09c..27b2f1c6 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.helper.PrefGetter; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotification.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotification.java index 573f44dd..41bb6965 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotification.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotification.java @@ -72,7 +72,7 @@ import lombok.NoArgsConstructor; })).subscribe(o -> {/*do nothing*/}, Throwable::printStackTrace); } - public static Disposable save(@android.support.annotation.Nullable List models) { + public static Disposable save(@androidx.annotation.Nullable List models) { if (models == null || models.isEmpty()) { return Observable.empty().subscribe(); } @@ -92,7 +92,7 @@ import lombok.NoArgsConstructor; })).subscribe(o -> {/*do nothing*/}, Throwable::printStackTrace); } - public static Single saveAsSingle(@android.support.annotation.Nullable List models) { + public static Single saveAsSingle(@androidx.annotation.Nullable List models) { if (models == null || models.isEmpty()) { return Single.just(true); } diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java index 664e1f92..350bc73b 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractNotificationQueue.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.helper.RxHelper; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedGists.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedGists.java index 66ce439d..8cd2282e 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedGists.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedGists.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao.model; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.data.dao.converters.GistConverter; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedIssues.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedIssues.java index 22cdc9ad..7617675e 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedIssues.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedIssues.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao.model; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.data.dao.converters.IssueConverter; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedPullRequests.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedPullRequests.java index 869d78f6..3df8d59d 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedPullRequests.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedPullRequests.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao.model; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.data.dao.converters.PullRequestConverter; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedRepos.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedRepos.java index e9bfde70..877202e5 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedRepos.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPinnedRepos.java @@ -1,8 +1,8 @@ package com.fastaccess.data.dao.model; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.data.dao.converters.RepoConverter; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPullRequest.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPullRequest.java index 42925d45..8d4b8c07 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractPullRequest.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractPullRequest.java @@ -3,7 +3,7 @@ package com.fastaccess.data.dao.model; import android.content.Context; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractRelease.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractRelease.java index b7c7ac7e..321796fc 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractRelease.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractRelease.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.ReleasesAssetsListModel; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepo.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepo.java index 8a8c6306..24bb911b 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepo.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepo.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.LicenseModel; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepoFile.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepoFile.java index 474af92c..47088317 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepoFile.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractRepoFile.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.data.dao.types.FilesType; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractUser.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractUser.java index 06c44fd7..200c36fd 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractUser.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractUser.java @@ -2,8 +2,8 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.helper.RxHelper; diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractViewerFile.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractViewerFile.java index cc0bd4ac..9e0f3ac6 100644 --- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractViewerFile.java +++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractViewerFile.java @@ -2,7 +2,7 @@ package com.fastaccess.data.dao.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.App; import com.fastaccess.helper.RxHelper; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/EventsType.java b/app/src/main/java/com/fastaccess/data/dao/types/EventsType.java index fdcf64df..85b96d18 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/EventsType.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/EventsType.java @@ -1,8 +1,8 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.DrawableRes; -import android.support.annotation.StringRes; +import androidx.annotation.DrawableRes; +import androidx.annotation.StringRes; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/FilesType.java b/app/src/main/java/com/fastaccess/data/dao/types/FilesType.java index 00431f1b..4c44606a 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/FilesType.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/FilesType.java @@ -1,6 +1,6 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.DrawableRes; +import androidx.annotation.DrawableRes; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/IssueEventType.java b/app/src/main/java/com/fastaccess/data/dao/types/IssueEventType.java index d29060b4..c8ef9f5c 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/IssueEventType.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/IssueEventType.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.annimon.stream.Stream; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/IssueState.java b/app/src/main/java/com/fastaccess/data/dao/types/IssueState.java index 6155871e..039f45c3 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/IssueState.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/IssueState.java @@ -1,6 +1,6 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.StringRes; +import androidx.annotation.StringRes; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java b/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java index a8a13270..7b075c26 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java @@ -1,7 +1,7 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.IdRes; -import android.support.annotation.Nullable; +import androidx.annotation.IdRes; +import androidx.annotation.Nullable; import com.annimon.stream.Stream; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/ReviewStateType.java b/app/src/main/java/com/fastaccess/data/dao/types/ReviewStateType.java index da91a590..58b1a451 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/ReviewStateType.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/ReviewStateType.java @@ -1,9 +1,9 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import com.annimon.stream.Stream; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/types/StatusStateType.java b/app/src/main/java/com/fastaccess/data/dao/types/StatusStateType.java index ae02006b..0d104c1d 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/StatusStateType.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/StatusStateType.java @@ -1,8 +1,8 @@ package com.fastaccess.data.dao.types; -import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.annimon.stream.Stream; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt index cafe8d30..a8162e86 100644 --- a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt @@ -7,16 +7,18 @@ import com.fastaccess.helper.parcelableCreator /** * Created by Kosh on 13 Jun 2017, 8:06 PM */ -data class WikiContentModel(val content: String? = null, private val footer: String? = null, - val sidebar: List) : KotlinParcelable { +data class WikiContentModel( + val content: String? = null, private val footer: String? = null, + val sidebar: List +) : KotlinParcelable { companion object { @JvmField val CREATOR = parcelableCreator(::WikiContentModel) } constructor(source: Parcel) : this( - source.readString(), - source.readString(), - source.createTypedArrayList(WikiSideBarModel.CREATOR) + source.readString(), + source.readString(), + source.createTypedArrayList(WikiSideBarModel.CREATOR) ?: arrayListOf() ) override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) { diff --git a/app/src/main/java/com/fastaccess/data/service/GistService.java b/app/src/main/java/com/fastaccess/data/service/GistService.java index a0e70ecd..10a19ff8 100644 --- a/app/src/main/java/com/fastaccess/data/service/GistService.java +++ b/app/src/main/java/com/fastaccess/data/service/GistService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.CommentRequestModel; import com.fastaccess.data.dao.CreateGistModel; diff --git a/app/src/main/java/com/fastaccess/data/service/ImgurService.java b/app/src/main/java/com/fastaccess/data/service/ImgurService.java index 74687698..834f7109 100644 --- a/app/src/main/java/com/fastaccess/data/service/ImgurService.java +++ b/app/src/main/java/com/fastaccess/data/service/ImgurService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.ImgurReponseModel; diff --git a/app/src/main/java/com/fastaccess/data/service/IssueService.java b/app/src/main/java/com/fastaccess/data/service/IssueService.java index d63d7c4b..63496cbb 100644 --- a/app/src/main/java/com/fastaccess/data/service/IssueService.java +++ b/app/src/main/java/com/fastaccess/data/service/IssueService.java @@ -1,7 +1,7 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.AssigneesRequestModel; import com.fastaccess.data.dao.CommentRequestModel; diff --git a/app/src/main/java/com/fastaccess/data/service/LoginRestService.java b/app/src/main/java/com/fastaccess/data/service/LoginRestService.java index e9049bdd..ffbaee3b 100644 --- a/app/src/main/java/com/fastaccess/data/service/LoginRestService.java +++ b/app/src/main/java/com/fastaccess/data/service/LoginRestService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.AccessTokenModel; import com.fastaccess.data.dao.AuthModel; diff --git a/app/src/main/java/com/fastaccess/data/service/NotificationService.java b/app/src/main/java/com/fastaccess/data/service/NotificationService.java index f32ed1a0..04ad2502 100644 --- a/app/src/main/java/com/fastaccess/data/service/NotificationService.java +++ b/app/src/main/java/com/fastaccess/data/service/NotificationService.java @@ -1,8 +1,8 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; -import android.support.annotation.StringDef; +import androidx.annotation.NonNull; +import androidx.annotation.StringDef; import com.fastaccess.data.dao.NotificationSubscriptionBodyModel; import com.fastaccess.data.dao.Pageable; diff --git a/app/src/main/java/com/fastaccess/data/service/OrganizationService.java b/app/src/main/java/com/fastaccess/data/service/OrganizationService.java index f4b64f10..b5e2d2b9 100644 --- a/app/src/main/java/com/fastaccess/data/service/OrganizationService.java +++ b/app/src/main/java/com/fastaccess/data/service/OrganizationService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.Pageable; import com.fastaccess.data.dao.TeamsModel; diff --git a/app/src/main/java/com/fastaccess/data/service/PullRequestService.java b/app/src/main/java/com/fastaccess/data/service/PullRequestService.java index 999c82b8..91963af6 100644 --- a/app/src/main/java/com/fastaccess/data/service/PullRequestService.java +++ b/app/src/main/java/com/fastaccess/data/service/PullRequestService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.AssigneesRequestModel; import com.fastaccess.data.dao.CommitFileModel; diff --git a/app/src/main/java/com/fastaccess/data/service/ReactionsService.java b/app/src/main/java/com/fastaccess/data/service/ReactionsService.java index 06a4a6ea..0ee4e8ce 100644 --- a/app/src/main/java/com/fastaccess/data/service/ReactionsService.java +++ b/app/src/main/java/com/fastaccess/data/service/ReactionsService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.Pageable; import com.fastaccess.data.dao.PostReactionModel; diff --git a/app/src/main/java/com/fastaccess/data/service/RepoService.java b/app/src/main/java/com/fastaccess/data/service/RepoService.java index 92c0054b..76daeefd 100644 --- a/app/src/main/java/com/fastaccess/data/service/RepoService.java +++ b/app/src/main/java/com/fastaccess/data/service/RepoService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.BranchesModel; import com.fastaccess.data.dao.CommentRequestModel; diff --git a/app/src/main/java/com/fastaccess/data/service/ReviewService.java b/app/src/main/java/com/fastaccess/data/service/ReviewService.java index 8d947c36..875dc42a 100644 --- a/app/src/main/java/com/fastaccess/data/service/ReviewService.java +++ b/app/src/main/java/com/fastaccess/data/service/ReviewService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.CommentRequestModel; import com.fastaccess.data.dao.Pageable; diff --git a/app/src/main/java/com/fastaccess/data/service/UserRestService.java b/app/src/main/java/com/fastaccess/data/service/UserRestService.java index a3d2289d..b0c70988 100644 --- a/app/src/main/java/com/fastaccess/data/service/UserRestService.java +++ b/app/src/main/java/com/fastaccess/data/service/UserRestService.java @@ -1,6 +1,6 @@ package com.fastaccess.data.service; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.Pageable; import com.fastaccess.data.dao.model.Event; diff --git a/app/src/main/java/com/fastaccess/helper/ActivityHelper.java b/app/src/main/java/com/fastaccess/helper/ActivityHelper.java index 777c64ec..dbea0d11 100644 --- a/app/src/main/java/com/fastaccess/helper/ActivityHelper.java +++ b/app/src/main/java/com/fastaccess/helper/ActivityHelper.java @@ -12,15 +12,15 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.customtabs.CustomTabsIntent; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.ActivityOptionsCompat; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.ShareCompat; -import android.support.v4.util.Pair; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.browser.customtabs.CustomTabsIntent; +import androidx.core.app.ActivityCompat; +import androidx.core.app.ActivityOptionsCompat; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.core.app.ShareCompat; +import androidx.core.util.Pair; import android.view.View; import android.widget.Toast; diff --git a/app/src/main/java/com/fastaccess/helper/AnimHelper.java b/app/src/main/java/com/fastaccess/helper/AnimHelper.java index 2faa8d41..631b381b 100644 --- a/app/src/main/java/com/fastaccess/helper/AnimHelper.java +++ b/app/src/main/java/com/fastaccess/helper/AnimHelper.java @@ -5,14 +5,14 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.app.Dialog; import android.graphics.Rect; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.UiThread; -import android.support.design.widget.FloatingActionButton; -import android.support.v4.app.DialogFragment; -import android.support.v4.view.ViewCompat; -import android.support.v4.view.animation.FastOutLinearInInterpolator; -import android.support.v4.view.animation.LinearOutSlowInInterpolator; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.UiThread; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import androidx.fragment.app.DialogFragment; +import androidx.core.view.ViewCompat; +import androidx.interpolator.view.animation.FastOutLinearInInterpolator; +import androidx.interpolator.view.animation.LinearOutSlowInInterpolator; import android.view.View; import android.view.ViewAnimationUtils; import android.view.ViewPropertyAnimator; diff --git a/app/src/main/java/com/fastaccess/helper/AppHelper.java b/app/src/main/java/com/fastaccess/helper/AppHelper.java index 3cffe09c..5c593a7e 100644 --- a/app/src/main/java/com/fastaccess/helper/AppHelper.java +++ b/app/src/main/java/com/fastaccess/helper/AppHelper.java @@ -11,10 +11,10 @@ import android.content.res.Resources; import android.net.ConnectivityManager; import android.os.Build; import android.provider.Settings; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import android.view.View; import android.view.inputmethod.InputMethodManager; diff --git a/app/src/main/java/com/fastaccess/helper/BundleConstant.java b/app/src/main/java/com/fastaccess/helper/BundleConstant.java index 2360472e..bd2ddc3d 100644 --- a/app/src/main/java/com/fastaccess/helper/BundleConstant.java +++ b/app/src/main/java/com/fastaccess/helper/BundleConstant.java @@ -1,6 +1,6 @@ package com.fastaccess.helper; -import android.support.annotation.StringDef; +import androidx.annotation.StringDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/app/src/main/java/com/fastaccess/helper/Bundler.java b/app/src/main/java/com/fastaccess/helper/Bundler.java index 0ceb5bb4..216352fc 100644 --- a/app/src/main/java/com/fastaccess/helper/Bundler.java +++ b/app/src/main/java/com/fastaccess/helper/Bundler.java @@ -4,7 +4,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.SparseArray; import java.io.Serializable; diff --git a/app/src/main/java/com/fastaccess/helper/FileHelper.java b/app/src/main/java/com/fastaccess/helper/FileHelper.java index 2b281396..d59b9a6c 100644 --- a/app/src/main/java/com/fastaccess/helper/FileHelper.java +++ b/app/src/main/java/com/fastaccess/helper/FileHelper.java @@ -8,8 +8,8 @@ import android.net.Uri; import android.os.Environment; import android.provider.DocumentsContract; import android.provider.MediaStore; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.R; import com.fastaccess.data.dao.NotificationSoundModel; diff --git a/app/src/main/java/com/fastaccess/helper/InputHelper.java b/app/src/main/java/com/fastaccess/helper/InputHelper.java index f838e045..51f9171a 100644 --- a/app/src/main/java/com/fastaccess/helper/InputHelper.java +++ b/app/src/main/java/com/fastaccess/helper/InputHelper.java @@ -1,8 +1,8 @@ package com.fastaccess.helper; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TextInputLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.textfield.TextInputLayout; import android.text.TextUtils; import android.widget.EditText; import android.widget.TextView; diff --git a/app/src/main/java/com/fastaccess/helper/Logger.java b/app/src/main/java/com/fastaccess/helper/Logger.java index f00ea119..64953a7c 100644 --- a/app/src/main/java/com/fastaccess/helper/Logger.java +++ b/app/src/main/java/com/fastaccess/helper/Logger.java @@ -1,7 +1,7 @@ package com.fastaccess.helper; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.util.Log; import com.fastaccess.BuildConfig; diff --git a/app/src/main/java/com/fastaccess/helper/ObjectsCompat.java b/app/src/main/java/com/fastaccess/helper/ObjectsCompat.java index 34f709f2..f5c56b6c 100644 --- a/app/src/main/java/com/fastaccess/helper/ObjectsCompat.java +++ b/app/src/main/java/com/fastaccess/helper/ObjectsCompat.java @@ -1,6 +1,6 @@ package com.fastaccess.helper; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; /** * Created by Kosh on 18 Apr 2017, 10:57 PM diff --git a/app/src/main/java/com/fastaccess/helper/ParseDateFormat.java b/app/src/main/java/com/fastaccess/helper/ParseDateFormat.java index eba702cc..c3587cf2 100644 --- a/app/src/main/java/com/fastaccess/helper/ParseDateFormat.java +++ b/app/src/main/java/com/fastaccess/helper/ParseDateFormat.java @@ -1,7 +1,7 @@ package com.fastaccess.helper; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.format.DateUtils; import java.text.DateFormat; diff --git a/app/src/main/java/com/fastaccess/helper/PrefGetter.java b/app/src/main/java/com/fastaccess/helper/PrefGetter.java index 5e72b8d3..af09693d 100644 --- a/app/src/main/java/com/fastaccess/helper/PrefGetter.java +++ b/app/src/main/java/com/fastaccess/helper/PrefGetter.java @@ -4,9 +4,9 @@ import android.content.Context; import android.content.res.Resources; import android.media.RingtoneManager; import android.net.Uri; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.BuildConfig; diff --git a/app/src/main/java/com/fastaccess/helper/PrefHelper.java b/app/src/main/java/com/fastaccess/helper/PrefHelper.java index 74eadf20..10fee73d 100644 --- a/app/src/main/java/com/fastaccess/helper/PrefHelper.java +++ b/app/src/main/java/com/fastaccess/helper/PrefHelper.java @@ -3,8 +3,8 @@ package com.fastaccess.helper; import android.annotation.SuppressLint; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.App; diff --git a/app/src/main/java/com/fastaccess/helper/RxHelper.java b/app/src/main/java/com/fastaccess/helper/RxHelper.java index 1cd29bea..698c1883 100644 --- a/app/src/main/java/com/fastaccess/helper/RxHelper.java +++ b/app/src/main/java/com/fastaccess/helper/RxHelper.java @@ -1,6 +1,6 @@ package com.fastaccess.helper; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import io.reactivex.Observable; import io.reactivex.Single; diff --git a/app/src/main/java/com/fastaccess/helper/ViewHelper.java b/app/src/main/java/com/fastaccess/helper/ViewHelper.java index eabedf76..2861d625 100644 --- a/app/src/main/java/com/fastaccess/helper/ViewHelper.java +++ b/app/src/main/java/com/fastaccess/helper/ViewHelper.java @@ -14,10 +14,10 @@ import android.graphics.drawable.RippleDrawable; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.StateListDrawable; import android.graphics.drawable.shapes.RoundRectShape; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; import android.text.Layout; import android.util.TypedValue; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java b/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java index fc760f27..b11e0c19 100644 --- a/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java +++ b/app/src/main/java/com/fastaccess/provider/colors/ColorsProvider.java @@ -3,9 +3,9 @@ package com.fastaccess.provider.colors; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Color; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt b/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt index fc57ba4b..5e5faa94 100644 --- a/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt +++ b/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt @@ -18,18 +18,20 @@ object FabricProvider { fun initFabric(context: Context) { val fabric = Fabric.Builder(context) - .kits(Crashlytics.Builder() - .core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) - .build()) - .debuggable(BuildConfig.DEBUG) - .build() + .kits( + Crashlytics.Builder() + .core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) + .build() + ) + .debuggable(BuildConfig.DEBUG) + .build() Fabric.with(fabric) } - fun logPurchase(productKey: String, price: Long? = null, priceText: String? = null) { + fun logPurchase(productKey: String?, price: Long? = null, priceText: String? = null) { val purchaseEvent = PurchaseEvent() - .putItemName(productKey) - .putSuccess(true) + .putItemName(productKey) + .putSuccess(true) priceText?.let { purchaseEvent.putItemType(priceText) diff --git a/app/src/main/java/com/fastaccess/provider/fcm/PushNotificationService.java b/app/src/main/java/com/fastaccess/provider/fcm/PushNotificationService.java index 64a3d8d8..b6dcfd93 100644 --- a/app/src/main/java/com/fastaccess/provider/fcm/PushNotificationService.java +++ b/app/src/main/java/com/fastaccess/provider/fcm/PushNotificationService.java @@ -4,7 +4,7 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; -import android.support.v4.app.NotificationCompat; +import androidx.core.app.NotificationCompat; import com.fastaccess.R; import com.fastaccess.data.dao.model.FastHubNotification; diff --git a/app/src/main/java/com/fastaccess/provider/gson/ToGsonProvider.java b/app/src/main/java/com/fastaccess/provider/gson/ToGsonProvider.java index 5f88e3e5..e3cafe28 100644 --- a/app/src/main/java/com/fastaccess/provider/gson/ToGsonProvider.java +++ b/app/src/main/java/com/fastaccess/provider/gson/ToGsonProvider.java @@ -1,7 +1,7 @@ package com.fastaccess.provider.gson; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/provider/markdown/MarkDownProvider.java b/app/src/main/java/com/fastaccess/provider/markdown/MarkDownProvider.java index 70056f03..b98e6e44 100644 --- a/app/src/main/java/com/fastaccess/provider/markdown/MarkDownProvider.java +++ b/app/src/main/java/com/fastaccess/provider/markdown/MarkDownProvider.java @@ -1,7 +1,7 @@ package com.fastaccess.provider.markdown; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.Html; import android.view.ViewTreeObserver; import android.webkit.MimeTypeMap; diff --git a/app/src/main/java/com/fastaccess/provider/rest/ImgurProvider.java b/app/src/main/java/com/fastaccess/provider/rest/ImgurProvider.java index cfabe111..ce68f47b 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/ImgurProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/ImgurProvider.java @@ -1,6 +1,6 @@ package com.fastaccess.provider.rest; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.BuildConfig; import com.fastaccess.data.service.ImgurService; diff --git a/app/src/main/java/com/fastaccess/provider/rest/LoginProvider.java b/app/src/main/java/com/fastaccess/provider/rest/LoginProvider.java index 383825f1..af315679 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/LoginProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/LoginProvider.java @@ -1,7 +1,7 @@ package com.fastaccess.provider.rest; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.BuildConfig; import com.fastaccess.data.service.LoginRestService; diff --git a/app/src/main/java/com/fastaccess/provider/rest/RepoQueryProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RepoQueryProvider.java index 65adb2ae..95566852 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RepoQueryProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RepoQueryProvider.java @@ -1,6 +1,6 @@ package com.fastaccess.provider.rest; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.types.IssueState; diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 6fb75871..31278ed9 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -4,8 +4,8 @@ import android.app.DownloadManager; import android.content.Context; import android.net.Uri; import android.os.Environment; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.widget.Toast; diff --git a/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java b/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java index d8bca871..ab79636c 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java +++ b/app/src/main/java/com/fastaccess/provider/rest/converters/GithubResponseConverter.java @@ -1,6 +1,6 @@ package com.fastaccess.provider.rest.converters; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.google.gson.Gson; diff --git a/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt b/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt index be5eae49..9f15342e 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt +++ b/app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.kt @@ -24,7 +24,7 @@ class AuthenticationInterceptor : Interceptor { @Throws(IOException::class) override fun intercept(chain: Interceptor.Chain): Response { val original = chain.request() val builder = original.newBuilder() - val isEnterprise = LinkParserHelper.isEnterprise(original.url().host()) + val isEnterprise = LinkParserHelper.isEnterprise(original.url.host) val authToken = if (token.isNullOrBlank()) if (isEnterprise) PrefGetter.getEnterpriseToken() else PrefGetter.getToken() else token val otpCode = if (otp.isNullOrBlank()) if (isEnterprise) PrefGetter.getEnterpriseOtpCode() else PrefGetter.getOtpCode() else otp if (!authToken.isNullOrBlank()) { diff --git a/app/src/main/java/com/fastaccess/provider/rest/interceptors/ContentTypeInterceptor.kt b/app/src/main/java/com/fastaccess/provider/rest/interceptors/ContentTypeInterceptor.kt index 263c378b..83b3d755 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/interceptors/ContentTypeInterceptor.kt +++ b/app/src/main/java/com/fastaccess/provider/rest/interceptors/ContentTypeInterceptor.kt @@ -13,7 +13,7 @@ class ContentTypeInterceptor : Interceptor { return chain.proceed(request.newBuilder() .addHeader("Accept", "application/vnd.github.v3+json") .addHeader("Content-type", "application/vnd.github.v3+json") - .method(request.method(), request.body()) + .method(request.method, request.body) .build()) } } \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/provider/rest/interceptors/PaginationInterceptor.java b/app/src/main/java/com/fastaccess/provider/rest/interceptors/PaginationInterceptor.java index 4875f0c8..5f5cf54f 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/interceptors/PaginationInterceptor.java +++ b/app/src/main/java/com/fastaccess/provider/rest/interceptors/PaginationInterceptor.java @@ -1,7 +1,7 @@ package com.fastaccess.provider.rest.interceptors; import android.net.Uri; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.helper.InputHelper; diff --git a/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java b/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java index 479a9c25..b2bfa4e8 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java @@ -1,6 +1,6 @@ package com.fastaccess.provider.rest.jsoup; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.BuildConfig; import com.fastaccess.data.service.ScrapService; diff --git a/app/src/main/java/com/fastaccess/provider/rest/loadmore/OnLoadMore.java b/app/src/main/java/com/fastaccess/provider/rest/loadmore/OnLoadMore.java index f0d77da7..654880ec 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/loadmore/OnLoadMore.java +++ b/app/src/main/java/com/fastaccess/provider/rest/loadmore/OnLoadMore.java @@ -1,6 +1,6 @@ package com.fastaccess.provider.rest.loadmore; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.ui.base.mvp.BaseMvp; import com.fastaccess.ui.widgets.recyclerview.scroll.InfiniteScroll; diff --git a/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java b/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java index 5a0bfab6..b02bd103 100644 --- a/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java +++ b/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java @@ -1,8 +1,8 @@ package com.fastaccess.provider.scheme; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.webkit.MimeTypeMap; diff --git a/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java b/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java index 250131a0..5f1a60a3 100644 --- a/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java +++ b/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java @@ -7,8 +7,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.webkit.MimeTypeMap; diff --git a/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java b/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java index 57fe9ed6..66120d2c 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java @@ -5,10 +5,10 @@ import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.NotificationCompat; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; import com.fastaccess.R; import com.fastaccess.helper.BundleConstant; diff --git a/app/src/main/java/com/fastaccess/provider/tasks/git/ReactionService.java b/app/src/main/java/com/fastaccess/provider/tasks/git/ReactionService.java index 63d9a3bc..618e6fe0 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/git/ReactionService.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/git/ReactionService.java @@ -5,9 +5,9 @@ import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.NotificationCompat; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; import com.fastaccess.R; import com.fastaccess.data.dao.PostReactionModel; diff --git a/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java b/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java index 3f6f4d57..d587d10e 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java @@ -9,10 +9,10 @@ import android.content.Intent; import android.graphics.BitmapFactory; import android.media.AudioManager; import android.os.Build; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.NotificationCompat; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; +import androidx.core.content.ContextCompat; import com.annimon.stream.Stream; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/provider/tasks/notification/ReadNotificationService.java b/app/src/main/java/com/fastaccess/provider/tasks/notification/ReadNotificationService.java index 76435993..07c751bc 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/notification/ReadNotificationService.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/notification/ReadNotificationService.java @@ -7,9 +7,9 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.NotificationCompat; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; import com.annimon.stream.LongStream; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java b/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java index d8c0ed14..1c00ba23 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java @@ -2,7 +2,7 @@ package com.fastaccess.provider.tasks.slack; import android.app.IntentService; import android.content.Intent; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.App; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt b/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt index 74d30329..7dab67f5 100644 --- a/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt +++ b/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt @@ -3,7 +3,7 @@ package com.fastaccess.provider.theme import android.app.Activity import android.app.ActivityManager import android.graphics.BitmapFactory -import android.support.annotation.StyleRes +import androidx.annotation.StyleRes import com.danielstone.materialaboutlibrary.MaterialAboutActivity import com.fastaccess.R import com.fastaccess.helper.Logger diff --git a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java index 8114ae47..3be60d73 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java @@ -1,8 +1,8 @@ package com.fastaccess.provider.timeline; import android.content.Context; -import android.support.annotation.IdRes; -import android.support.annotation.NonNull; +import androidx.annotation.IdRes; +import androidx.annotation.NonNull; import android.view.View; import android.widget.TextView; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/HtmlHelper.java b/app/src/main/java/com/fastaccess/provider/timeline/HtmlHelper.java index 68b8e9bb..828e7643 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/HtmlHelper.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/HtmlHelper.java @@ -4,9 +4,9 @@ package com.fastaccess.provider.timeline; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import android.view.HapticFeedbackConstants; import android.widget.PopupMenu; import android.widget.TextView; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java b/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java index cd64cb37..e185c5cc 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java @@ -1,9 +1,9 @@ package com.fastaccess.provider.timeline; -import android.support.annotation.IdRes; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.IdRes; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.PostReactionModel; import com.fastaccess.data.dao.ReactionsModel; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/TimelineProvider.java b/app/src/main/java/com/fastaccess/provider/timeline/TimelineProvider.java index 54f04a3b..114357e1 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/TimelineProvider.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/TimelineProvider.java @@ -2,8 +2,8 @@ package com.fastaccess.provider.timeline; import android.content.Context; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.style.BackgroundColorSpan; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/HrSpan.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/HrSpan.java index 176612d2..3bd13a09 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/HrSpan.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/HrSpan.java @@ -5,7 +5,7 @@ import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.style.LineHeightSpan; import android.text.style.ReplacementSpan; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/ListsHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/ListsHandler.java index 6e5d01de..2d830c96 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/ListsHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/ListsHandler.java @@ -1,7 +1,7 @@ package com.fastaccess.provider.timeline.handler; import android.graphics.drawable.Drawable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.text.SpannableStringBuilder; import com.fastaccess.helper.Logger; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java index e1f40a74..0e7be88b 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java @@ -1,7 +1,7 @@ package com.fastaccess.provider.timeline.handler; import android.graphics.Color; -import android.support.annotation.ColorInt; +import androidx.annotation.ColorInt; import android.text.SpannableStringBuilder; import android.text.style.BackgroundColorSpan; import android.text.style.ForegroundColorSpan; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java index d44a49f9..1ead0e21 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java @@ -1,6 +1,6 @@ package com.fastaccess.provider.timeline.handler; -import android.support.annotation.ColorInt; +import androidx.annotation.ColorInt; import android.text.SpannableStringBuilder; import com.zzhoujay.markdown.style.MarkDownQuoteSpan; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/TableHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/TableHandler.java index 141946f4..4f432648 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/TableHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/TableHandler.java @@ -8,7 +8,7 @@ import android.graphics.Paint.Style; import android.graphics.PixelFormat; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.Layout.Alignment; import android.text.Spannable; import android.text.SpannableStringBuilder; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java index 12c78e0e..93b1989b 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java @@ -2,13 +2,15 @@ package com.fastaccess.provider.timeline.handler.drawable; import android.content.Context; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import android.text.Html; import android.widget.TextView; -import com.bumptech.glide.GenericRequestBuilder; import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestBuilder; +import com.fastaccess.App; +import com.fastaccess.GlideApp; import com.fastaccess.R; import java.lang.ref.WeakReference; @@ -35,12 +37,12 @@ public class DrawableGetter implements Html.ImageGetter, Drawable.Callback { final UrlDrawable urlDrawable = new UrlDrawable(); if (container != null && container.get() != null) { Context context = container.get().getContext(); - final GenericRequestBuilder load = Glide.with(context) + final RequestBuilder load = Glide.with(context) .load(url) .placeholder(ContextCompat.getDrawable(context, R.drawable.ic_image)) - .dontAnimate(); + .dontAnimate() + .override(width, width / 2); final GlideDrawableTarget target = new GlideDrawableTarget(urlDrawable, container, width); - load.override(width, width / 2); load.into(target); cachedTargets.add(target); } @@ -60,7 +62,7 @@ public class DrawableGetter implements Html.ImageGetter, Drawable.Callback { public void clear(@NonNull DrawableGetter drawableGetter) { if (drawableGetter.cachedTargets != null) { for (GlideDrawableTarget target : drawableGetter.cachedTargets) { - Glide.clear(target); + GlideApp.with(App.getInstance()).clear(target); } } } diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java index f9ffaf05..30f6b687 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java @@ -1,17 +1,21 @@ package com.fastaccess.provider.timeline.handler.drawable; import android.graphics.Rect; +import android.graphics.drawable.Animatable; import android.graphics.drawable.Drawable; import android.widget.TextView; -import com.bumptech.glide.load.resource.drawable.GlideDrawable; -import com.bumptech.glide.request.animation.GlideAnimation; +import com.bumptech.glide.load.resource.gif.GifDrawable; import com.bumptech.glide.request.target.SimpleTarget; +import com.bumptech.glide.request.transition.Transition; import com.fastaccess.R; import java.lang.ref.WeakReference; -class GlideDrawableTarget extends SimpleTarget { +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +class GlideDrawableTarget extends SimpleTarget { private final UrlDrawable urlDrawable; private final WeakReference container; private final int width; @@ -22,7 +26,7 @@ class GlideDrawableTarget extends SimpleTarget { this.width = width; } - @Override public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) { + @Override public void onResourceReady(final @NonNull Drawable resource, @Nullable Transition transition) { if (container != null && container.get() != null) { TextView textView = container.get(); textView.post(() -> { @@ -41,10 +45,10 @@ class GlideDrawableTarget extends SimpleTarget { resource.setBounds(rect); urlDrawable.setBounds(rect); urlDrawable.setDrawable(resource); - if (resource.isAnimated()) { + if (resource instanceof GifDrawable) { urlDrawable.setCallback((Drawable.Callback) textView.getTag(R.id.drawable_callback)); - resource.setLoopCount(GlideDrawable.LOOP_FOREVER); - resource.start(); + ((GifDrawable) resource).setLoopCount(GifDrawable.LOOP_FOREVER); + ((GifDrawable) resource).start(); } textView.setText(textView.getText()); textView.invalidate(); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java index 3478859e..938dc033 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java @@ -3,7 +3,7 @@ package com.fastaccess.provider.timeline.handler.drawable; import android.graphics.Canvas; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.bumptech.glide.load.resource.gif.GifDrawable; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/AssigneesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/AssigneesAdapter.java index 6398da33..6079b6a2 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/AssigneesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/AssigneesAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.model.User; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/BranchesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/BranchesAdapter.java index d9dd9a91..5c893c11 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/BranchesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/BranchesAdapter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/CommentsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/CommentsAdapter.java index c51c0645..802352b2 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/CommentsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/CommentsAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Comment; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/CommitFilesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/CommitFilesAdapter.java index 15d40b9c..1deea53d 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/CommitFilesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/CommitFilesAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.CommitFileChanges; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/CommitLinesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/CommitLinesAdapter.java index a2348d09..808326c3 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/CommitLinesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/CommitLinesAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.CommitLinesModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/CommitsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/CommitsAdapter.java index 2a7ec721..dcc64565 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/CommitsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/CommitsAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Commit; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/FeedsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/FeedsAdapter.java index 43cf047e..07e42cdc 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/FeedsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/FeedsAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Event; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/FragmentsPagerAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/FragmentsPagerAdapter.java index 18595d22..160e0ee4 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/FragmentsPagerAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/FragmentsPagerAdapter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentStatePagerAdapter; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentStatePagerAdapter; import com.fastaccess.data.dao.FragmentPagerAdapterModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/GistFilesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/GistFilesAdapter.java index e7899d7d..a27e3fe5 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/GistFilesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/GistFilesAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.FilesListModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/GistsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/GistsAdapter.java index 4d5ab031..fb9acb65 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/GistsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/GistsAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Gist; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/IssuesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/IssuesAdapter.java index 12655b48..9d1faed7 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/IssuesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/IssuesAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Issue; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/IssuesTimelineAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/IssuesTimelineAdapter.java index 6e507bf0..fdcde66d 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/IssuesTimelineAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/IssuesTimelineAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.view.ViewGroup; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/LabelColorsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/LabelColorsAdapter.java index 325fd051..03340443 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/LabelColorsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/LabelColorsAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.ui.adapter.viewholder.LabelColorsViewHolder; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/LabelsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/LabelsAdapter.java index 1463f91f..9ac84a53 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/LabelsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/LabelsAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.LabelModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/MilestonesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/MilestonesAdapter.java index 142be747..07098506 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/MilestonesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/MilestonesAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.MilestoneModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/NotificationsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/NotificationsAdapter.java index dc06bd8b..820b2a19 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/NotificationsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/NotificationsAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/PinnedReposAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/PinnedReposAdapter.java index dd1157aa..b715a44b 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/PinnedReposAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/PinnedReposAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.model.PinnedRepos; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/PullRequestAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/PullRequestAdapter.java index 962271b4..61b5af45 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/PullRequestAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/PullRequestAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.PullRequest; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/ReleasesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/ReleasesAdapter.java index 288219a8..322b60b9 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/ReleasesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/ReleasesAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Release; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/RepoFilePathsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/RepoFilePathsAdapter.java index 58d3f94c..51b78297 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/RepoFilePathsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/RepoFilePathsAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.RepoFile; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/RepoFilesAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/RepoFilesAdapter.java index c60a328f..e5f5a686 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/RepoFilesAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/RepoFilesAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.RepoFile; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/ReposAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/ReposAdapter.java index 16976307..f3bf3b77 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/ReposAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/ReposAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.Repo; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/ReviewCommentsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/ReviewCommentsAdapter.java index 9b42ca6b..38c499a8 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/ReviewCommentsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/ReviewCommentsAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.data.dao.ReviewCommentModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/SearchCodeAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/SearchCodeAdapter.java index 07091d36..114db6e5 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/SearchCodeAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/SearchCodeAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.SearchCodeModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/SettingsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/SettingsAdapter.java index 0d2fb6e4..4a4296bd 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/SettingsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/SettingsAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/SimpleListAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/SimpleListAdapter.java index 066f39ae..39425e96 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/SimpleListAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/SimpleListAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.ViewGroup; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/SpinnerAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/SpinnerAdapter.java index 46b727ba..7fe7b87e 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/SpinnerAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/SpinnerAdapter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/TeamsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/TeamsAdapter.java index 54706d8f..6c55294c 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/TeamsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/TeamsAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.TeamsModel; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/TopicsAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/TopicsAdapter.java index 3936a171..ff5f2499 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/TopicsAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/TopicsAdapter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter; import android.content.Intent; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.App; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/UsersAdapter.java b/app/src/main/java/com/fastaccess/ui/adapter/UsersAdapter.java index 42d9ac08..6c36f6c0 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/UsersAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/UsersAdapter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import com.fastaccess.data.dao.model.User; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java index 7027707b..8c5d9e16 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java index de2545be..409643d5 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitCommentsViewHolder.kt b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitCommentsViewHolder.kt index c80bbd9d..f6e526cc 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitCommentsViewHolder.kt +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitCommentsViewHolder.kt @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder -import android.support.transition.ChangeBounds -import android.support.transition.TransitionManager +import androidx.transition.ChangeBounds +import androidx.transition.TransitionManager import android.view.View import android.view.ViewGroup import android.view.ViewTreeObserver diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitLinesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitLinesViewHolder.java index 8492d901..27bbe957 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitLinesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitLinesViewHolder.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.AppCompatTextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.appcompat.widget.AppCompatTextView; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java index d66e5a94..6052fdc8 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java index 67eb3ffd..81c19bab 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; import android.content.res.Resources; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.view.Gravity; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistFilesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistFilesViewHolder.java index 34494296..dadf0c1b 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistFilesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistFilesViewHolder.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.format.Formatter; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java index 2fc2e36f..5d5fed8e 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GroupedReviewsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GroupedReviewsViewHolder.java index cc4f3b26..9bc7fa2b 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GroupedReviewsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GroupedReviewsViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java index 8bd68e0d..18251cc1 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.transition.ChangeBounds; -import android.support.transition.TransitionManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.transition.ChangeBounds; +import androidx.transition.TransitionManager; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueTimelineViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueTimelineViewHolder.java index 01e94d5e..fe595d0f 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueTimelineViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueTimelineViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java index 024a8027..dd71535e 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelColorsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelColorsViewHolder.java index a4e986da..117b5b60 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelColorsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelColorsViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelsViewHolder.java index 6f17803b..cd57af4a 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/LabelsViewHolder.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/MilestonesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/MilestonesViewHolder.java index c38475a8..f86bfdb7 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/MilestonesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/MilestonesViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsHeaderViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsHeaderViewHolder.java index d92b40c6..694b3ffd 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsHeaderViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsHeaderViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageButton; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageButton; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java index f4db564b..48308d94 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.CardView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.cardview.widget.CardView; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java index 35adb8b5..b0d6b5cb 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java index ab58f073..49426e83 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestFilesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestFilesViewHolder.java index fbf8b7cc..9f0eedc7 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestFilesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestFilesViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java index 7898539a..3675ee0c 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java index 480dfa3d..4051cdf0 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import android.text.method.LinkMovementMethod; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReleasesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReleasesViewHolder.java index 7dbf3e88..aa1db2df 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReleasesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReleasesViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilePathsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilePathsViewHolder.java index 258c6d3b..ef8d7221 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilePathsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilePathsViewHolder.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilesViewHolder.java index 22268678..d88509de 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilesViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/RepoFilesViewHolder.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.format.Formatter; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java index f849b29f..380cfb26 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.format.Formatter; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java index 72700d9e..a4859ed5 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.transition.ChangeBounds; -import android.support.transition.TransitionManager; -import android.support.v7.widget.AppCompatImageView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.transition.ChangeBounds; +import androidx.transition.TransitionManager; +import androidx.appcompat.widget.AppCompatImageView; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SearchCodeViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SearchCodeViewHolder.java index b1ba2cdf..a96a2caa 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SearchCodeViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SearchCodeViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SimpleViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SimpleViewHolder.java index d91b25e2..f964a7b1 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SimpleViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/SimpleViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TeamsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TeamsViewHolder.java index 6183fd34..314a270c 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TeamsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TeamsViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java index f34e5772..5ee5a0a4 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.transition.ChangeBounds; -import android.support.transition.TransitionManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.transition.ChangeBounds; +import androidx.transition.TransitionManager; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java index 2788e64c..10ae83e6 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.adapter.viewholder; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java b/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java index a51d2aac..e388278f 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java @@ -4,18 +4,18 @@ import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.DrawableRes; -import android.support.annotation.IdRes; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.design.widget.AppBarLayout; -import android.support.design.widget.NavigationView; -import android.support.v4.view.GravityCompat; -import android.support.v4.view.ViewPager; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.widget.Toolbar; +import androidx.annotation.DrawableRes; +import androidx.annotation.IdRes; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.navigation.NavigationView; +import androidx.core.view.GravityCompat; +import androidx.viewpager.widget.ViewPager; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.appcompat.widget.Toolbar; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java b/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java index def0cc07..0bcfb974 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java @@ -3,12 +3,12 @@ package com.fastaccess.ui.base; import android.app.Dialog; import android.content.Context; import android.os.Bundle; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.BottomSheetBehavior; -import android.support.design.widget.BottomSheetDialogFragment; -import android.support.v7.view.ContextThemeWrapper; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.android.material.bottomsheet.BottomSheetDialogFragment; +import androidx.appcompat.view.ContextThemeWrapper; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java b/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java index 75af217b..6ef8f3b0 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java @@ -6,11 +6,11 @@ import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.os.Bundle; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v7.view.ContextThemeWrapper; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.appcompat.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseFragment.java b/app/src/main/java/com/fastaccess/ui/base/BaseFragment.java index c79a305c..b721b593 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseFragment.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseFragment.java @@ -3,11 +3,11 @@ package com.fastaccess.ui.base; import android.annotation.SuppressLint; import android.content.Context; import android.os.Bundle; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v7.view.ContextThemeWrapper; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.appcompat.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseMvpBottomSheetDialogFragment.java b/app/src/main/java/com/fastaccess/ui/base/BaseMvpBottomSheetDialogFragment.java index 852e7121..48ba5024 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseMvpBottomSheetDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseMvpBottomSheetDialogFragment.java @@ -6,12 +6,12 @@ import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.design.widget.BottomSheetDialog; -import android.support.v7.view.ContextThemeWrapper; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import com.google.android.material.bottomsheet.BottomSheetDialog; +import androidx.appcompat.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/base/MainNavDrawer.kt b/app/src/main/java/com/fastaccess/ui/base/MainNavDrawer.kt index 4e481a17..7957363d 100644 --- a/app/src/main/java/com/fastaccess/ui/base/MainNavDrawer.kt +++ b/app/src/main/java/com/fastaccess/ui/base/MainNavDrawer.kt @@ -1,7 +1,7 @@ package com.fastaccess.ui.base -import android.support.design.widget.NavigationView -import android.support.design.widget.TabLayout +import com.google.android.material.navigation.NavigationView +import com.google.android.material.tabs.TabLayout import android.view.View import android.widget.TextView import com.fastaccess.R diff --git a/app/src/main/java/com/fastaccess/ui/base/mvp/BaseMvp.java b/app/src/main/java/com/fastaccess/ui/base/mvp/BaseMvp.java index 18c769b8..fec3eb79 100644 --- a/app/src/main/java/com/fastaccess/ui/base/mvp/BaseMvp.java +++ b/app/src/main/java/com/fastaccess/ui/base/mvp/BaseMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.base.mvp; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import com.fastaccess.ui.widgets.dialog.MessageDialogView; diff --git a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java index bc209f93..41edf14a 100644 --- a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.base.mvp.presenter; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import com.evernote.android.state.StateSaver; import com.fastaccess.R; @@ -21,7 +21,6 @@ import java.util.concurrent.TimeoutException; import io.reactivex.Observable; import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; -import retrofit2.HttpException; /** diff --git a/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java b/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java index b70ca835..0f55f9b9 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java @@ -3,9 +3,9 @@ package com.fastaccess.ui.modules.about; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import android.view.MenuItem; import android.view.View; import android.widget.Toast; diff --git a/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogBottomSheetDialog.java b/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogBottomSheetDialog.java index c3f8acae..6d972dce 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogBottomSheetDialog.java +++ b/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogBottomSheetDialog.java @@ -2,8 +2,8 @@ package com.fastaccess.ui.modules.changelog; import android.app.Dialog; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.widget.ProgressBar; diff --git a/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogMvp.java b/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogMvp.java index 0245fc2f..b1f09f38 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogMvp.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.changelog; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/code/CodeViewerActivity.java b/app/src/main/java/com/fastaccess/ui/modules/code/CodeViewerActivity.java index 218a1741..35b8f128 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/code/CodeViewerActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/code/CodeViewerActivity.java @@ -4,8 +4,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.Menu; import android.view.MenuItem; import android.webkit.MimeTypeMap; diff --git a/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.kt index e8ef9ac8..88929744 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.kt @@ -4,9 +4,9 @@ import android.annotation.SuppressLint import android.app.Activity import android.content.Intent import android.os.Bundle -import android.support.annotation.StringRes -import android.support.transition.TransitionManager -import android.support.v4.app.FragmentManager +import androidx.annotation.StringRes +import androidx.transition.TransitionManager +import androidx.fragment.app.FragmentManager import android.view.Menu import android.view.MenuItem import android.view.View @@ -39,8 +39,10 @@ class EditorActivity : BaseActivity(), EditorMv private var participants: ArrayList? = null private val sentFromFastHub: String by lazy { - "\n\n_" + getString(R.string.sent_from_fasthub, AppHelper.getDeviceName(), "", - "[" + getString(R.string.app_name) + "](https://play.google.com/store/apps/details?id=com.fastaccess.github)") + "_" + "\n\n_" + getString( + R.string.sent_from_fasthub, AppHelper.getDeviceName(), "", + "[" + getString(R.string.app_name) + "](https://play.google.com/store/apps/details?id=com.fastaccess.github)" + ) + "_" } @BindView(R.id.replyQuote) lateinit var replyQuote: LinearLayout @@ -76,9 +78,11 @@ class EditorActivity : BaseActivity(), EditorMv } else { quote.maxLines = 3 } - quote.setCompoundDrawablesWithIntrinsicBounds(0, 0, - if (quote.maxLines == 3) R.drawable.ic_arrow_drop_down - else R.drawable.ic_arrow_drop_up, 0) + quote.setCompoundDrawablesWithIntrinsicBounds( + 0, 0, + if (quote.maxLines == 3) R.drawable.ic_arrow_drop_down + else R.drawable.ic_arrow_drop_up, 0 + ) } override fun onCreate(savedInstanceState: Bundle?) { @@ -96,10 +100,12 @@ class EditorActivity : BaseActivity(), EditorMv override fun onSendResultAndFinish(commentModel: Comment, isNew: Boolean) { hideProgress() val intent = Intent() - intent.putExtras(Bundler.start() + intent.putExtras( + Bundler.start() .put(BundleConstant.ITEM, commentModel) .put(BundleConstant.EXTRA, isNew) - .end()) + .end() + ) setResult(Activity.RESULT_OK, intent) finish() } @@ -114,10 +120,12 @@ class EditorActivity : BaseActivity(), EditorMv override fun onSendReviewResultAndFinish(comment: EditReviewCommentModel, isNew: Boolean) { hideProgress() val intent = Intent() - intent.putExtras(Bundler.start() + intent.putExtras( + Bundler.start() .put(BundleConstant.ITEM, comment) .put(BundleConstant.EXTRA, isNew) - .end()) + .end() + ) setResult(Activity.RESULT_OK, intent) finish() } @@ -164,13 +172,15 @@ class EditorActivity : BaseActivity(), EditorMv override fun onBackPressed() { if (!InputHelper.isEmpty(editText)) { ViewHelper.hideKeyboard(editText) - MessageDialogView.newInstance(getString(R.string.close), getString(R.string.unsaved_data_warning), - Bundler.start() - .put("primary_extra", getString(R.string.discard)) - .put("secondary_extra", getString(R.string.cancel)) - .put(BundleConstant.EXTRA, true) - .end()) - .show(supportFragmentManager, MessageDialogView.TAG) + MessageDialogView.newInstance( + getString(R.string.close), getString(R.string.unsaved_data_warning), + Bundler.start() + .put("primary_extra", getString(R.string.discard)) + .put("secondary_extra", getString(R.string.cancel)) + .put(BundleConstant.EXTRA, true) + .end() + ) + .show(supportFragmentManager, MessageDialogView.TAG) return } @@ -203,28 +213,29 @@ class EditorActivity : BaseActivity(), EditorMv val intent = intent if (intent != null && intent.extras != null) { val bundle = intent.extras - extraType = bundle.getString(BundleConstant.EXTRA_TYPE) - reviewComment = bundle.getParcelable(BundleConstant.REVIEW_EXTRA) - itemId = bundle.getString(BundleConstant.ID) - login = bundle.getString(BundleConstant.EXTRA_TWO) + extraType = bundle?.getString(BundleConstant.EXTRA_TYPE) + reviewComment = bundle?.getParcelable(BundleConstant.REVIEW_EXTRA) + itemId = bundle?.getString(BundleConstant.ID) + login = bundle?.getString(BundleConstant.EXTRA_TWO) if (extraType.equals(BundleConstant.ExtraType.EDIT_COMMIT_COMMENT_EXTRA, ignoreCase = true) - || extraType.equals(BundleConstant.ExtraType.NEW_COMMIT_COMMENT_EXTRA, ignoreCase = true)) { - sha = bundle.getString(BundleConstant.EXTRA_THREE) + || extraType.equals(BundleConstant.ExtraType.NEW_COMMIT_COMMENT_EXTRA, ignoreCase = true) + ) { + sha = bundle?.getString(BundleConstant.EXTRA_THREE) } else { - issueNumber = bundle.getInt(BundleConstant.EXTRA_THREE) + issueNumber = bundle?.getInt(BundleConstant.EXTRA_THREE) ?: -1 } - commentId = bundle.getLong(BundleConstant.EXTRA_FOUR) - val textToUpdate = bundle.getString(BundleConstant.EXTRA) + commentId = bundle?.getLong(BundleConstant.EXTRA_FOUR) ?: -1 + val textToUpdate = bundle?.getString(BundleConstant.EXTRA) if (!InputHelper.isEmpty(textToUpdate)) { editText.setText(String.format("%s ", textToUpdate)) editText.setSelection(InputHelper.toString(editText).length) } - if (bundle.getString("message", "").isBlank()) { + if (bundle?.getString("message", "").isNullOrEmpty()) { replyQuote.visibility = GONE } else { - MarkDownProvider.setMdText(quote, bundle.getString("message", "")) + MarkDownProvider.setMdText(quote, bundle?.getString("message", "")) } - participants = bundle.getStringArrayList("participants") + participants = bundle?.getStringArrayList("participants") } } } \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt index bfb552b8..42fe49e4 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt @@ -5,8 +5,8 @@ import android.app.Activity import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.transition.TransitionManager -import android.support.v4.app.FragmentManager +import androidx.transition.TransitionManager +import androidx.fragment.app.FragmentManager import android.view.View import android.view.ViewGroup import android.widget.EditText @@ -68,7 +68,7 @@ class CommentEditorFragment : BaseFragment(RxBillingService.getInstance(this, BuildConfig.DEBUG) - .purchase(ProductType.IN_APP, productKey, "inapp:com.fastaccess.github:" + productKey)) - .subscribe({ _: Purchase?, throwable: Throwable? -> - if (throwable == null) { - FabricProvider.logPurchase(productKey, price, priceText) - showMessage(R.string.success, R.string.success_purchase_message) - enableProduct(productKey, applicationContext) - val intent = Intent() - intent.putExtra(BundleConstant.ITEM, productKey) - setResult(Activity.RESULT_OK, intent) - } else { - if (throwable is RxBillingServiceException) { - val code = throwable.code - if (code == RxBillingServiceError.ITEM_ALREADY_OWNED) { - enableProduct(productKey, applicationContext) - val intent = Intent() - intent.putExtra(BundleConstant.ITEM, productKey) - setResult(Activity.RESULT_OK, intent) - } else { - showErrorMessage(throwable.message!!) - Logger.e(code) - setResult(Activity.RESULT_CANCELED) - } + val bundle: Bundle? = intent?.extras + + val productKey = bundle?.getString(BundleConstant.EXTRA) + val price = bundle?.getLong(BundleConstant.EXTRA_FOUR, 0) + val priceText = bundle?.getString(BundleConstant.EXTRA_FIVE) + subscription = RxHelper.getSingle( + RxBillingService.getInstance(this, BuildConfig.DEBUG) + .purchase(ProductType.IN_APP, productKey, "inapp:com.fastaccess.github:$productKey") + ) + .subscribe { _: Purchase?, throwable: Throwable? -> + if (throwable == null) { + FabricProvider.logPurchase(productKey, price, priceText) + showMessage(R.string.success, R.string.success_purchase_message) + enableProduct(productKey, applicationContext) + val intent = Intent() + intent.putExtra(BundleConstant.ITEM, productKey) + setResult(Activity.RESULT_OK, intent) + } else { + if (throwable is RxBillingServiceException) { + val code = throwable.code + if (code == RxBillingServiceError.ITEM_ALREADY_OWNED) { + enableProduct(productKey, applicationContext) + val intent = Intent() + intent.putExtra(BundleConstant.ITEM, productKey) + setResult(Activity.RESULT_OK, intent) + } else { + showErrorMessage(throwable.message!!) + Logger.e(code) + setResult(Activity.RESULT_CANCELED) } - throwable.printStackTrace() } - finish() - }) + throwable.printStackTrace() + } + finish() + } } override fun onDestroy() { @@ -81,25 +84,29 @@ class DonateActivity : BaseActivity { diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/donation/DonationActivity.java b/app/src/main/java/com/fastaccess/ui/modules/main/donation/DonationActivity.java index 11588940..2bd4256f 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/donation/DonationActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/donation/DonationActivity.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.main.donation; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.widget.AppBarLayout; +import androidx.annotation.NonNull; +import com.google.android.material.appbar.AppBarLayout; import android.view.View; import com.fastaccess.App; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt index 1976d8f8..1222e91b 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt @@ -2,7 +2,7 @@ package com.fastaccess.ui.modules.main.drawer import android.content.Intent import android.os.Bundle -import android.support.design.widget.NavigationView +import com.google.android.material.navigation.NavigationView import android.view.MenuItem import android.view.View import com.fastaccess.R diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesFragment.java index a46784cb..2a349bda 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesFragment.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.main.issues; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.evernote.android.state.State; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesMvp.java b/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesMvp.java index 8981af77..57a999f6 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.main.issues; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.Issue; import com.fastaccess.data.dao.types.IssueState; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesPresenter.java index 50c4d55e..14f59bbe 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/issues/MyIssuesPresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.main.issues; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.model.Issue; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java b/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java index d7ac22ab..5d3fe750 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.main.issues.pager; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; -import android.support.v4.view.ViewPager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; +import androidx.viewpager.widget.ViewPager; import android.view.MenuInflater; import android.view.View; import android.widget.PopupMenu; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/notifications/FastHubNotificationDialog.kt b/app/src/main/java/com/fastaccess/ui/modules/main/notifications/FastHubNotificationDialog.kt index f53f4314..267b2120 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/notifications/FastHubNotificationDialog.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/main/notifications/FastHubNotificationDialog.kt @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.main.notifications import android.os.Bundle -import android.support.v4.app.FragmentManager +import androidx.fragment.app.FragmentManager import android.text.Html import android.view.View import butterknife.OnClick diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogFragment.java index f96e2e09..3210e4ac 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogFragment.java @@ -1,11 +1,11 @@ package com.fastaccess.ui.modules.main.orgs; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +import androidx.appcompat.widget.Toolbar; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogMvp.java b/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogMvp.java index 922b4262..1d1ef665 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.main.orgs; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogPresenter.java index 392aae3e..4898dac5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.main.orgs; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.model.User; import com.fastaccess.helper.PrefGetter; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/premium/GmsTaskListeners.java b/app/src/main/java/com/fastaccess/ui/modules/main/premium/GmsTaskListeners.java index e15fd70c..3e8664d4 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/premium/GmsTaskListeners.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/premium/GmsTaskListeners.java @@ -1,6 +1,6 @@ package com.github.b3er.rxfirebase.common; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import io.reactivex.CompletableEmitter; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt index 36f791bf..d0b50a9e 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt @@ -5,7 +5,7 @@ import android.app.Activity import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.transition.TransitionManager +import androidx.transition.TransitionManager import android.view.View import android.widget.Button import android.widget.EditText diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestFragment.java b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestFragment.java index cadfef8d..99a93ce2 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestFragment.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.main.pullrequests; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.evernote.android.state.State; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsMvp.java b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsMvp.java index 3bf2bba1..a5039c96 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.main.pullrequests; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.PullRequest; import com.fastaccess.data.dao.types.IssueState; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsPresenter.java index 62ee0e90..2eebd742 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/MyPullRequestsPresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.main.pullrequests; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.model.Login; diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/pager/MyPullsPagerFragment.java b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/pager/MyPullsPagerFragment.java index 08efda43..0cca8ff8 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/pager/MyPullsPagerFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/pager/MyPullsPagerFragment.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.main.pullrequests.pager; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; -import android.support.v4.view.ViewPager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; +import androidx.viewpager.widget.ViewPager; import android.view.MenuInflater; import android.view.View; import android.widget.PopupMenu; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java b/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java index 31821191..89b005b1 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.notification; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; +import androidx.fragment.app.Fragment; import com.fastaccess.R; import com.fastaccess.data.dao.FragmentPagerAdapterModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java index 5340e6e0..ee212016 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java @@ -3,9 +3,9 @@ package com.fastaccess.ui.modules.notification.all; import android.content.Context; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsMvp.java b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsMvp.java index 5b8297aa..281a2887 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.notification.all; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.GroupedNotificationModel; import com.fastaccess.data.dao.model.Notification; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsPresenter.java index ddfb9270..128eb8cd 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.notification.all; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java b/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java index 1df8c5f0..80bd317d 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.notification.callback; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.GroupedNotificationModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java index 40fd70a4..61b38a45 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.notification.unread; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.GroupedNotificationModel; import com.fastaccess.data.dao.model.Notification; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java index fb5962b6..84095873 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java @@ -3,9 +3,9 @@ package com.fastaccess.ui.modules.notification.unread; import android.content.Context; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java index 75ea175f..bdef53e7 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.notification.unread; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java b/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java index f053f3d9..8fc1143c 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java @@ -4,8 +4,8 @@ import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.widget.Toast; import com.fastaccess.App; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/PinnedReposActivity.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/PinnedReposActivity.java index f32dfd4a..f6267c6f 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/PinnedReposActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/PinnedReposActivity.java @@ -3,9 +3,9 @@ package com.fastaccess.ui.modules.pinned; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; import com.fastaccess.R; import com.fastaccess.data.dao.FragmentPagerAdapterModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistFragment.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistFragment.java index e599bdfe..6c07ea41 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistFragment.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.pinned.gist; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistMvp.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistMvp.java index a6db4ed5..089a79e0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.pinned.gist; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.Gist; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistPresenter.java index b2db040b..1b878524 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.pinned.gist; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.data.dao.model.Gist; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueFragment.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueFragment.java index 2120c35e..550fadf3 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueFragment.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.pinned.issue; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueMvp.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueMvp.java index dd0dadd4..2d478538 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.pinned.issue; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.Issue; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssuePresenter.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssuePresenter.java index d2f2d1b3..7f423bd5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssuePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssuePresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.pinned.issue; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.data.dao.model.Issue; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestFragment.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestFragment.java index 6ad0593c..2ddf26eb 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestFragment.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.pinned.pullrequest; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestMvp.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestMvp.java index 380275f1..ccbac215 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.pinned.pullrequest; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.PullRequest; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestPresenter.java index df8687b9..c7c84942 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.pinned.pullrequest; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.data.dao.model.PinnedPullRequests; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposFragment.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposFragment.java index 7de7aa9f..f64a2cc7 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposFragment.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.pinned.repo; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposMvp.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposMvp.java index b0d1b9ea..08e6bb43 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.pinned.repo; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.PinnedRepos; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposPresenter.java index a924cb25..5b4e2cf4 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.pinned.repo; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.data.dao.model.AbstractPinnedRepos; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerFragment.java b/app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerFragment.java index 435bcae5..d172e7fe 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerFragment.java @@ -1,16 +1,15 @@ package com.fastaccess.ui.modules.profile; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; import android.view.View; import com.fastaccess.R; import com.fastaccess.data.dao.FragmentPagerAdapterModel; import com.fastaccess.helper.BundleConstant; import com.fastaccess.helper.Bundler; -import com.fastaccess.helper.Logger; import com.fastaccess.ui.adapter.FragmentsPagerAdapter; import com.fastaccess.ui.base.BaseFragment; import com.fastaccess.ui.widgets.ViewPagerView; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersFragment.java b/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersFragment.java index 2080cdc8..82a0c183 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersFragment.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.profile.followers; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersMvp.java b/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersMvp.java index 24625ec8..3b8c59b4 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.profile.followers; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.User; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersPresenter.java index a9dfbd4c..ea45c400 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersPresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.profile.followers; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.model.User; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingFragment.java b/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingFragment.java index 3da3b821..5fe9654e 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingFragment.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.profile.following; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingMvp.java b/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingMvp.java index c21fa694..1249e8c1 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.profile.following; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.User; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingPresenter.java index 8f75fd1d..443f7aa7 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingPresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.profile.following; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.model.User; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsFragment.java index ab3e18d6..7f5ae1aa 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsFragment.java @@ -3,10 +3,10 @@ package com.fastaccess.ui.modules.profile.gists; import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsMvp.java b/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsMvp.java index b8a958f2..c0c484eb 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.profile.gists; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.Gist; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsPresenter.java index 44fda497..e098ccc7 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsPresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.profile.gists; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewFragment.java b/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewFragment.java index 75b9ce33..e9859f48 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewFragment.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.profile.org; import android.annotation.SuppressLint; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.transition.TransitionManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.transition.TransitionManager; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewMvp.java b/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewMvp.java index fa661a15..1bc7ce54 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.profile.org; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewPresenter.java index 6b3fb1cf..5146430b 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewPresenter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.profile.org; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.fastaccess.helper.BundleConstant; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersFragment.java b/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersFragment.java index 027b040f..3655cec0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersFragment.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.profile.org.members; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersMvp.java b/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersMvp.java index 74d03018..ab60bfb0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.profile.org.members; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.User; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersPresenter.java index c771193c..517386a1 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/members/OrgMembersPresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.profile.org.members; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.model.User; diff --git a/app/src/main/java/com/fastaccess/ui/modules/profile/org/project/OrgProjectActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/profile/org/project/OrgProjectActivity.kt index cd8e9a96..e81823d9 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/profile/org/project/OrgProjectActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/profile/org/project/OrgProjectActivity.kt @@ -3,7 +3,7 @@ package com.fastaccess.ui.modules.profile.org.project import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.design.widget.AppBarLayout +import com.google.android.material.appbar.AppBarLayout import butterknife.BindView import com.evernote.android.state.State import com.fastaccess.R @@ -39,13 +39,15 @@ class OrgProjectActivity : BaseActivity(), RepoLicenseMvp.View, - PrettifyWebView.OnContentChangedListener { + PrettifyWebView.OnContentChangedListener { @State var content: String? = null @@ -32,10 +32,11 @@ class RepoLicenseBottomSheet : BaseMvpBottomSheetDialogFragment", "
")
+            val licenseText = license.replace(
+                "
", "
"
+            )
             webView.setGithubContent("
$licenseText
", null, false) } else { hideProgress() @@ -46,9 +47,9 @@ class RepoLicenseBottomSheet : BaseMvpBottomSheetDialogFragment parentFragment as LockIssuePrCallback diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneDialogFragment.java index ac723f18..164b9a0e 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneDialogFragment.java @@ -2,11 +2,11 @@ package com.fastaccess.ui.modules.repos.extras.milestone; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.design.widget.AppBarLayout; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import com.google.android.material.appbar.AppBarLayout; +import androidx.appcompat.widget.Toolbar; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneMvp.java index 62590d8b..e5cd49f9 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.repos.extras.milestone; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.MilestoneModel; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestonePresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestonePresenter.java index 6325f9fe..992d9327 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestonePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestonePresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.repos.extras.milestone; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneDialogFragment.java index 735e21bb..ce6e2343 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneDialogFragment.java @@ -2,11 +2,11 @@ package com.fastaccess.ui.modules.repos.extras.milestone.create; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TextInputEditText; -import android.support.design.widget.TextInputLayout; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.textfield.TextInputEditText; +import com.google.android.material.textfield.TextInputLayout; +import androidx.appcompat.widget.Toolbar; import android.view.MotionEvent; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneMvp.java index c7d1f696..33fdc4b6 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneMvp.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.repos.extras.milestone.create; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.MilestoneModel; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestonePresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestonePresenter.java index 848e16d8..b83c9129 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestonePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestonePresenter.java @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.repos.extras.milestone.create; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.R; import com.fastaccess.data.dao.CreateMilestoneModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/MilestoneDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/MilestoneDialogFragment.java index 05afccb9..fd945436 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/MilestoneDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/MilestoneDialogFragment.java @@ -2,8 +2,8 @@ package com.fastaccess.ui.modules.repos.extras.milestone.create; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscDialogFragment.java index 477cf3e8..2d7096a5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscDialogFragment.java @@ -1,12 +1,12 @@ package com.fastaccess.ui.modules.repos.extras.misc; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.app.FragmentManager; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.fragment.app.FragmentManager; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +import androidx.appcompat.widget.Toolbar; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscMVp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscMVp.java index 421823f6..b6d9850d 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscMVp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscMVp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.extras.misc; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscPresenter.java index 69787266..e1aa6c58 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/misc/RepoMiscPresenter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.extras.misc; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.Pageable; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupFragment.java index 6e5b84da..819401f3 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupFragment.java @@ -2,12 +2,12 @@ package com.fastaccess.ui.modules.repos.extras.popup; import android.graphics.Color; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.AppBarLayout; -import android.support.design.widget.FloatingActionButton; -import android.support.v4.app.FragmentManager; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import androidx.fragment.app.FragmentManager; +import androidx.appcompat.widget.Toolbar; import android.view.View; import android.widget.LinearLayout; import android.widget.ProgressBar; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupMvp.java index 48656dac..7fd54ea1 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupMvp.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.repos.extras.popup; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupPresenter.java index 7aa24dab..c726b254 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupPresenter.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.repos.extras.popup; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.data.dao.CommentRequestModel; import com.fastaccess.provider.rest.RestProvider; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/git/EditRepoFileActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/git/EditRepoFileActivity.kt index 89483a57..397a5a0a 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/git/EditRepoFileActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/git/EditRepoFileActivity.kt @@ -5,9 +5,9 @@ import android.app.Activity import android.content.Intent import android.net.Uri import android.os.Bundle -import android.support.design.widget.TextInputLayout -import android.support.v4.app.Fragment -import android.support.v4.app.FragmentManager +import com.google.android.material.textfield.TextInputLayout +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager import android.view.Menu import android.view.MenuItem import android.view.View diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/git/delete/DeleteFileBottomSheetFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/git/delete/DeleteFileBottomSheetFragment.kt index 27f603b1..1a95b3d3 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/git/delete/DeleteFileBottomSheetFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/git/delete/DeleteFileBottomSheetFragment.kt @@ -2,7 +2,7 @@ package com.fastaccess.ui.modules.repos.git.delete import android.content.Context import android.os.Bundle -import android.support.design.widget.TextInputLayout +import com.google.android.material.textfield.TextInputLayout import android.view.View import butterknife.BindView import butterknife.OnClick @@ -37,7 +37,7 @@ class DeleteFileBottomSheetFragment : BaseBottomSheetDialog() { @OnClick(R.id.cancel) fun onCancel() = dismiss() - override fun onAttach(context: Context?) { + override fun onAttach(context: Context) { super.onAttach(context) if (parentFragment is DeleteContentFileCallback) { deleteCallback = parentFragment as DeleteContentFileCallback diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerFragment.java index 63a8c197..42d842be 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerFragment.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.repos.issues; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; +import androidx.fragment.app.Fragment; import android.view.View; import android.widget.TextView; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerMvp.java index 2fc218cb..f0311015 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerMvp.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.repos.issues; -import android.support.annotation.IntRange; +import androidx.annotation.IntRange; import com.fastaccess.ui.base.mvp.BaseMvp; import com.fastaccess.ui.modules.repos.RepoPagerMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueActivity.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueActivity.java index 1b121fec..4fc2a5ea 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueActivity.java @@ -5,12 +5,12 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TextInputLayout; -import android.support.transition.TransitionManager; -import android.support.v4.app.Fragment; -import android.support.v7.app.AlertDialog; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.textfield.TextInputLayout; +import androidx.transition.TransitionManager; +import androidx.fragment.app.Fragment; +import androidx.appcompat.app.AlertDialog; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueMvp.java index 7740da18..beef1a0a 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssueMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.issues.create; import android.content.Intent; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.LabelModel; import com.fastaccess.data.dao.MilestoneModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssuePresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssuePresenter.java index 4452103f..df511abe 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssuePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/create/CreateIssuePresenter.java @@ -2,8 +2,8 @@ package com.fastaccess.ui.modules.repos.issues.create; import android.app.Activity; import android.content.Intent; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoClosedIssuesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoClosedIssuesFragment.java index d2efa78d..ea540b19 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoClosedIssuesFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoClosedIssuesFragment.java @@ -4,10 +4,10 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesMvp.java index 5b42cb88..19499249 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.repos.issues.issue; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.PullsIssuesParser; import com.fastaccess.data.dao.model.Issue; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesPresenter.java index 6159c550..eaa31f40 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoIssuesPresenter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.issues.issue; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoOpenedIssuesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoOpenedIssuesFragment.java index 875262c0..24b7a5ff 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoOpenedIssuesFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/RepoOpenedIssuesFragment.java @@ -4,10 +4,10 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java index ca1081be..7bad8224 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java @@ -3,12 +3,12 @@ package com.fastaccess.ui.modules.repos.issues.issue.details; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.TabLayout; -import android.support.v4.content.ContextCompat; -import android.support.v4.view.ViewPager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.tabs.TabLayout; +import androidx.core.content.ContextCompat; +import androidx.viewpager.widget.ViewPager; import android.view.Menu; import android.view.MenuItem; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerMvp.java index 1b75f173..b781cade 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerMvp.java @@ -2,8 +2,8 @@ package com.fastaccess.ui.modules.repos.issues.issue.details; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.LabelModel; import com.fastaccess.data.dao.MilestoneModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerPresenter.java index bd44d5c0..f894621f 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerPresenter.java @@ -2,8 +2,8 @@ package com.fastaccess.ui.modules.repos.issues.issue.details; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import com.annimon.stream.Collectors; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineFragment.java index 3c83d392..3f0103d0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineFragment.java @@ -4,9 +4,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import android.view.View; import com.evernote.android.state.State; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineMvp.java index 77d70940..ef6029c4 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelineMvp.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.repos.issues.issue.details.timeline; import android.os.Bundle; -import android.support.annotation.IdRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.IdRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.TimelineModel; import com.fastaccess.data.dao.model.Comment; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelinePresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelinePresenter.java index 153fbd1f..836b71e5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelinePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/timeline/IssueTimelinePresenter.java @@ -3,8 +3,8 @@ package com.fastaccess.ui.modules.repos.issues.issue.details.timeline; import android.app.Activity; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.widget.PopupMenu; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/RepoProjectsFragmentPager.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/RepoProjectsFragmentPager.kt index b6b3ccf6..7ab086d8 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/RepoProjectsFragmentPager.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/RepoProjectsFragmentPager.kt @@ -1,7 +1,7 @@ package com.fastaccess.ui.modules.repos.projects import android.os.Bundle -import android.support.design.widget.TabLayout +import com.google.android.material.tabs.TabLayout import android.view.View import butterknife.BindView import com.fastaccess.R @@ -37,15 +37,21 @@ class RepoProjectsFragmentPager : BaseFragment? - counts?.let { - if (!it.isEmpty()) it.onEach { updateCount(it) } - } + counts?.let { counts -> if (counts.isNotEmpty()) counts.onEach { updateCount(it) } } } else { counts = hashSetOf() } @@ -64,11 +70,11 @@ class RepoProjectsFragmentPager : BaseFragment parentFragment as ProjectPagerMvp.DeletePageListener @@ -62,23 +62,25 @@ class ProjectColumnFragment : BaseFragment(presenter) } - onLoadMore!!.parameter = getColumn().id + onLoadMore?.parameter = getColumn()?.id return onLoadMore!! } @@ -108,23 +110,24 @@ class ProjectColumnFragment : BaseFragment + columnName.text = column.name + refresh.setOnRefreshListener { presenter.onCallApi(1, column.id) } + stateLayout.setOnReloadListener { presenter.onCallApi(1, column.id) } + stateLayout.setEmptyText(R.string.no_cards) + recycler.setEmptyView(stateLayout, refresh) + getLoadMore().initialize(presenter.currentPage, presenter.previousTotal) + adapter.listener = presenter + recycler.adapter = adapter + recycler.addOnScrollListener(getLoadMore()) + fastScroller.attachRecyclerView(recycler) + if (presenter.getCards().isEmpty() && !presenter.isApiCalled) { + presenter.onCallApi(1, column.id) + } + addCard.visibility = if (isOwner()) View.VISIBLE else View.GONE + deleteColumn.visibility = if (isOwner()) View.VISIBLE else View.GONE + editColumn.visibility = if (isOwner()) View.VISIBLE else View.GONE } - addCard.visibility = if(isOwner()) View.VISIBLE else View.GONE - deleteColumn.visibility = if(isOwner()) View.VISIBLE else View.GONE - editColumn.visibility = if(isOwner()) View.VISIBLE else View.GONE } override fun showProgress(@StringRes resId: Int) { @@ -161,10 +164,10 @@ class ProjectColumnFragment : BaseFragment(), ProjectPage val repoId = repoId if (repoId != null && !repoId.isNullOrBlank()) { makeRestCall(Observable.zip(RestProvider.getProjectsService(isEnterprise).getProjectColumns(projectId), - RestProvider.getRepoService(isEnterprise).isCollaborator(login, repoId, Login.getUser().login), - BiFunction { items: Pageable, response: Response -> - viewerCanUpdate = response.code() == 204 - return@BiFunction items - }) - .flatMap { - if (it.items != null) { - return@flatMap Observable.just(it.items) - } - return@flatMap Observable.just(listOf()) - }, - { t -> - columns.clear() - columns.addAll(t) - sendToView { it.onInitPager(columns) } - }) + RestProvider.getRepoService(isEnterprise).isCollaborator(login, repoId, Login.getUser().login), + BiFunction { items: Pageable, response: Response -> + viewerCanUpdate = response.code() == 204 + return@BiFunction items + }) + .flatMap { + if (it.items != null) { + return@flatMap Observable.just(it.items) + } + return@flatMap Observable.just(listOf()) + }) { t -> + columns.clear() + columns.addAll(t) + sendToView { it.onInitPager(columns) } + } } else { makeRestCall(RestProvider.getProjectsService(isEnterprise).getProjectColumns(projectId) - .flatMap { - if (it.items != null) { - return@flatMap Observable.just(it.items) - } - return@flatMap Observable.just(listOf()) - }, - { t -> - columns.clear() - columns.addAll(t) - sendToView { it.onInitPager(columns) } - }) + .flatMap { + if (it.items != null) { + return@flatMap Observable.just(it.items) + } + return@flatMap Observable.just(listOf()) + }) { t -> + columns.clear() + columns.addAll(t) + sendToView { it.onInitPager(columns) } + } } } @@ -74,7 +72,7 @@ class ProjectPagerPresenter : BasePresenter(), ProjectPage it.extras?.let { projectId = it.getLong(BundleConstant.ID) repoId = it.getString(BundleConstant.ITEM) - login = it.getString(BundleConstant.EXTRA) + login = it.getString(BundleConstant.EXTRA) ?: "" } } if (columns.isEmpty()) { diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/list/RepoProjectFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/list/RepoProjectFragment.kt index 3fb414dc..ba936b2f 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/list/RepoProjectFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/list/RepoProjectFragment.kt @@ -2,8 +2,8 @@ package com.fastaccess.ui.modules.repos.projects.list import android.content.Context import android.os.Bundle -import android.support.annotation.StringRes -import android.support.v4.widget.SwipeRefreshLayout +import androidx.annotation.StringRes +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import android.view.View import butterknife.BindView import com.fastaccess.R @@ -33,7 +33,7 @@ class RepoProjectFragment : BaseFragment(), RepoProjectMv override fun onFragmentCreate(bundle: Bundle?) { bundle?.let { repoId = it.getString(BundleConstant.ID) - login = it.getString(BundleConstant.EXTRA) + login = it.getString(BundleConstant.EXTRA) ?: "" } } @@ -74,145 +74,151 @@ class RepoProjectPresenter : BasePresenter(), RepoProjectMv if (repoId != null && !repoId.isNullOrBlank()) { if (parameter == IssueState.open) { val query = RepoProjectsOpenQuery.builder() - .name(repoId) - .owner(login) - .page(getPage()) - .build() + .name(repoId) + .owner(login) + .page(getPage()) + .build() makeRestCall(Rx2Apollo.from(apollo.query(query)) - .flatMap { - val list = arrayListOf() - it.data()?.repository()?.let { - it.projects().let { - lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 - pages.clear() - count = it.totalCount() - it.edges()?.let { - pages.addAll(it.map { it.cursor() }) - } - it.nodes()?.let { - list.addAll(it) - } + .flatMap { response -> + val list = arrayListOf() + response.data()?.repository()?.let { repos -> + repos.projects().let { + lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 + pages.clear() + count = it.totalCount() + it.edges()?.let { + pages.addAll(it.map { it.cursor() }) + } + it.nodes()?.let { + list.addAll(it) } } - return@flatMap Observable.just(list) - }, - { - sendToView({ v -> - v.onNotifyAdapter(it, page) - if (page == 1) v.onChangeTotalCount(count) - }) - }) + } + return@flatMap Observable.just(list) + } + ) { + sendToView { v -> + v.onNotifyAdapter(it, page) + if (page == 1) v.onChangeTotalCount(count) + } + } } else { val query = RepoProjectsClosedQuery.builder() - .name(repoId) - .owner(login) - .page(getPage()) - .build() + .name(repoId) + .owner(login) + .page(getPage()) + .build() makeRestCall(Rx2Apollo.from(apollo.query(query)) - .flatMap { - val list = arrayListOf() - it.data()?.repository()?.let { - it.projects().let { - lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 - pages.clear() - count = it.totalCount() - it.edges()?.let { - pages.addAll(it.map { it.cursor() }) - } - it.nodes()?.let { - val toConvert = arrayListOf() - it.onEach { - val columns = RepoProjectsOpenQuery.Columns(it.columns().__typename(), it.columns().totalCount()) - val node = RepoProjectsOpenQuery.Node(it.__typename(), it.name(), it.number(), it.body(), - it.createdAt(), it.id(), it.viewerCanUpdate(), columns, it.databaseId()) - toConvert.add(node) - } - list.addAll(toConvert) + .flatMap { response -> + val list = arrayListOf() + response.data()?.repository()?.let { repository -> + repository.projects().let { projects1 -> + lastPage = if (projects1.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 + pages.clear() + count = projects1.totalCount() + projects1.edges()?.let { edges -> + pages.addAll(edges.map { it.cursor() }) + } + projects1.nodes()?.let { nodesList -> + val toConvert = arrayListOf() + nodesList.onEach { + val columns = RepoProjectsOpenQuery.Columns(it.columns().__typename(), it.columns().totalCount()) + val node = RepoProjectsOpenQuery.Node( + it.__typename(), it.name(), it.number(), it.body(), + it.createdAt(), it.id(), it.viewerCanUpdate(), columns, it.databaseId() + ) + toConvert.add(node) } + list.addAll(toConvert) } } - return@flatMap Observable.just(list) - }, - { - sendToView({ v -> - v.onNotifyAdapter(it, page) - if (page == 1) v.onChangeTotalCount(count) - }) - }) + } + return@flatMap Observable.just(list) + } + ) { + sendToView { v -> + v.onNotifyAdapter(it, page) + if (page == 1) v.onChangeTotalCount(count) + } + } } } else { if (parameter == IssueState.open) { val query = OrgProjectsOpenQuery.builder() - .owner(login) - .page(getPage()) - .build() + .owner(login) + .page(getPage()) + .build() makeRestCall(Rx2Apollo.from(apollo.query(query)) - .flatMap { - val list = arrayListOf() - it.data()?.organization()?.let { - it.projects().let { - lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 - pages.clear() - count = it.totalCount() - it.edges()?.let { - pages.addAll(it.map { it.cursor() }) - } - it.nodes()?.let { - val toConvert = arrayListOf() - it.onEach { - val columns = RepoProjectsOpenQuery.Columns(it.columns().__typename(), it.columns().totalCount()) - val node = RepoProjectsOpenQuery.Node(it.__typename(), it.name(), it.number(), it.body(), - it.createdAt(), it.id(), it.viewerCanUpdate(), columns, it.databaseId()) - toConvert.add(node) - } - list.addAll(toConvert) + .flatMap { + val list = arrayListOf() + it.data()?.organization()?.let { + it.projects().let { + lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 + pages.clear() + count = it.totalCount() + it.edges()?.let { + pages.addAll(it.map { it.cursor() }) + } + it.nodes()?.let { + val toConvert = arrayListOf() + it.onEach { + val columns = RepoProjectsOpenQuery.Columns(it.columns().__typename(), it.columns().totalCount()) + val node = RepoProjectsOpenQuery.Node( + it.__typename(), it.name(), it.number(), it.body(), + it.createdAt(), it.id(), it.viewerCanUpdate(), columns, it.databaseId() + ) + toConvert.add(node) } + list.addAll(toConvert) } } - return@flatMap Observable.just(list) - }, - { - sendToView({ v -> - v.onNotifyAdapter(it, page) - if (page == 1) v.onChangeTotalCount(count) - }) - }) + } + return@flatMap Observable.just(list) + } + ) { + sendToView { v -> + v.onNotifyAdapter(it, page) + if (page == 1) v.onChangeTotalCount(count) + } + } } else { val query = OrgProjectsClosedQuery.builder() - .owner(login) - .page(getPage()) - .build() + .owner(login) + .page(getPage()) + .build() makeRestCall(Rx2Apollo.from(apollo.query(query)) - .flatMap { - val list = arrayListOf() - it.data()?.organization()?.let { - it.projects().let { - lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 - pages.clear() - count = it.totalCount() - it.edges()?.let { - pages.addAll(it.map { it.cursor() }) - } - it.nodes()?.let { - val toConvert = arrayListOf() - it.onEach { - val columns = RepoProjectsOpenQuery.Columns(it.columns().__typename(), it.columns().totalCount()) - val node = RepoProjectsOpenQuery.Node(it.__typename(), it.name(), it.number(), it.body(), - it.createdAt(), it.id(), it.viewerCanUpdate(), columns, it.databaseId()) - toConvert.add(node) - } - list.addAll(toConvert) + .flatMap { + val list = arrayListOf() + it.data()?.organization()?.let { + it.projects().let { + lastPage = if (it.pageInfo().hasNextPage()) Int.MAX_VALUE else 0 + pages.clear() + count = it.totalCount() + it.edges()?.let { + pages.addAll(it.map { it.cursor() }) + } + it.nodes()?.let { + val toConvert = arrayListOf() + it.onEach { + val columns = RepoProjectsOpenQuery.Columns(it.columns().__typename(), it.columns().totalCount()) + val node = RepoProjectsOpenQuery.Node( + it.__typename(), it.name(), it.number(), it.body(), + it.createdAt(), it.id(), it.viewerCanUpdate(), columns, it.databaseId() + ) + toConvert.add(node) } + list.addAll(toConvert) } } - return@flatMap Observable.just(list) - }, - { - sendToView({ v -> - v.onNotifyAdapter(it, page) - if (page == 1) v.onChangeTotalCount(count) - }) - }) + } + return@flatMap Observable.just(list) + } + ) { + sendToView { v -> + v.onNotifyAdapter(it, page) + if (page == 1) v.onChangeTotalCount(count) + } + } } } return true diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerFragment.java index 11bb369f..e96a34f6 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerFragment.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.repos.pull_requests; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TabLayout; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.tabs.TabLayout; +import androidx.fragment.app.Fragment; import android.view.View; import android.widget.TextView; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerMvp.java index 1eee1f77..4699f18b 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerMvp.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.repos.pull_requests; -import android.support.annotation.IntRange; +import androidx.annotation.IntRange; import com.fastaccess.ui.base.mvp.BaseMvp; import com.fastaccess.ui.modules.repos.RepoPagerMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestFragment.java index b331035c..8931b18e 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestFragment.java @@ -4,10 +4,10 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestMvp.java index c835e0e5..bee29465 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.PullsIssuesParser; import com.fastaccess.data.dao.model.PullRequest; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestPresenter.java index 42fb9c68..5cc7ac5d 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/RepoPullRequestPresenter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.PullsIssuesParser; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerActivity.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerActivity.java index 422498e3..63f0918b 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerActivity.java @@ -3,14 +3,14 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.TabLayout; -import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; -import android.support.v4.view.ViewPager; -import android.support.v7.widget.CardView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.tabs.TabLayout; +import androidx.fragment.app.Fragment; +import androidx.core.content.ContextCompat; +import androidx.viewpager.widget.ViewPager; +import androidx.cardview.widget.CardView; import android.view.Menu; import android.view.MenuItem; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerMvp.java index 5e8acfc4..84800292 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerMvp.java @@ -3,8 +3,8 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.LabelModel; import com.fastaccess.data.dao.MilestoneModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerPresenter.java index d53b8801..db383c68 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/PullRequestPagerPresenter.java @@ -3,8 +3,8 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import com.annimon.stream.Collectors; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsFragment.java index a8dd48f7..1ffd7e19 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsFragment.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.commits; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsMvp.java index 6c9316b9..f04f6a36 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.commits; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.model.Commit; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsPresenter.java index 28e96c4b..d8765e47 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/commits/PullRequestCommitsPresenter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.commits; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import com.fastaccess.data.dao.model.Commit; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesFragment.java index 178e505c..59f02f7b 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesFragment.java @@ -4,10 +4,10 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.View; import com.evernote.android.state.State; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesMvp.java index a75bc1d1..633db903 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesMvp.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.files; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.CommentRequestModel; import com.fastaccess.data.dao.CommitFileChanges; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesPresenter.java index 4f3d126e..7c00fd68 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/PullRequestFilesPresenter.java @@ -3,8 +3,8 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.files import android.app.Activity; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.MenuInflater; import android.view.View; import android.widget.PopupMenu; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/fullscreen/FullScreenFileChangeActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/fullscreen/FullScreenFileChangeActivity.kt index 99f13ce3..7ad7685c 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/fullscreen/FullScreenFileChangeActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/files/fullscreen/FullScreenFileChangeActivity.kt @@ -4,8 +4,8 @@ import android.app.Activity import android.content.Intent import android.net.Uri import android.os.Bundle -import android.support.v4.app.Fragment -import android.support.v4.widget.SwipeRefreshLayout +import androidx.fragment.app.Fragment +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import android.view.Menu import android.view.MenuItem import android.view.View diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineFragment.java index 09cb51ac..b55ecd51 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineFragment.java @@ -4,9 +4,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import android.view.View; import com.evernote.android.state.State; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineMvp.java index b2a4246f..e440250b 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelineMvp.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.timeline.timeline; import android.os.Bundle; -import android.support.annotation.IdRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; +import androidx.annotation.IdRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.EditReviewCommentModel; import com.fastaccess.data.dao.ReviewCommentModel; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelinePresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelinePresenter.java index aa7e72a5..102d0951 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelinePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/details/timeline/timeline/PullRequestTimelinePresenter.java @@ -3,8 +3,8 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.timel import android.app.Activity; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.util.SparseArray; import android.view.View; import android.widget.PopupMenu; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullReqeustMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullReqeustMvp.java index 9b0e45c5..8daff5d5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullReqeustMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullReqeustMvp.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.fastaccess.ui.base.mvp.BaseMvp; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestDialogFragment.java index 9ee81a7b..231113b0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestDialogFragment.java @@ -2,10 +2,10 @@ package com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.TextInputLayout; -import android.support.v7.widget.AppCompatSpinner; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.material.textfield.TextInputLayout; +import androidx.appcompat.widget.AppCompatSpinner; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogFragment.java index 691c7f82..c39d9981 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogFragment.java @@ -1,11 +1,11 @@ package com.fastaccess.ui.modules.repos.reactions; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.design.widget.AppBarLayout; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import com.google.android.material.appbar.AppBarLayout; +import androidx.appcompat.widget.Toolbar; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogMvp.java b/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogMvp.java index f840e12b..87ed349e 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogMvp.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogMvp.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.reactions; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.fastaccess.provider.rest.loadmore.OnLoadMore; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogPresenter.java index 8032c665..2bd4bb95 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/reactions/ReactionsDialogPresenter.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.modules.repos.reactions; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt index 48091ebc..ed869ea6 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiActivity.kt @@ -4,8 +4,8 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.os.Bundle -import android.support.design.widget.NavigationView -import android.support.v4.widget.DrawerLayout +import com.google.android.material.navigation.NavigationView +import androidx.drawerlayout.widget.DrawerLayout import android.view.Gravity import android.view.Menu import android.view.MenuItem diff --git a/app/src/main/java/com/fastaccess/ui/modules/reviews/AddReviewDialogFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/reviews/AddReviewDialogFragment.kt index f98a14f3..baa17f83 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/reviews/AddReviewDialogFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/reviews/AddReviewDialogFragment.kt @@ -3,8 +3,8 @@ package com.fastaccess.ui.modules.reviews import android.content.Context import android.graphics.Color import android.os.Bundle -import android.support.v4.content.ContextCompat -import android.support.v7.widget.Toolbar +import androidx.core.content.ContextCompat +import androidx.appcompat.widget.Toolbar import android.view.View import android.widget.TextView import butterknife.BindView @@ -37,7 +37,7 @@ class AddReviewDialogFragment : BaseDialogFragment(BundleConstant.ITEM) - lineNo.text = SpannableBuilder.builder() + arguments?.getParcelable(BundleConstant.ITEM)?.let { item -> + lineNo.text = SpannableBuilder.builder() .append(if (item.leftLineNo >= 0) String.format("%s.", item.leftLineNo) else "") .append(if (item.rightLineNo >= 0) String.format("%s.", item.rightLineNo) else "") - lineNo.visibility = if (InputHelper.isEmpty(lineNo)) View.GONE else View.VISIBLE + lineNo.visibility = if (InputHelper.isEmpty(lineNo)) View.GONE else View.VISIBLE - val context = context ?: return - when (item.color) { - CommitLinesModel.ADDITION -> textView.setBackgroundColor(ViewHelper.getPatchAdditionColor(context)) - CommitLinesModel.DELETION -> textView.setBackgroundColor(ViewHelper.getPatchDeletionColor(context)) - CommitLinesModel.PATCH -> textView.setBackgroundColor(ViewHelper.getPatchRefColor(context)) - else -> textView.setBackgroundColor(Color.TRANSPARENT) - } - if (item.noNewLine) { - textView.text = SpannableBuilder.builder().append(item.text.replace(spacePattern, " ")).append(" ") - .append(ContextCompat.getDrawable(context, R.drawable.ic_newline)) - } else { - textView.text = item.text.replace(spacePattern, " ") - } - toolbar.setTitle(R.string.add_comment) - toolbar.setNavigationIcon(R.drawable.ic_clear) - toolbar.setNavigationOnClickListener { dismiss() } - toolbar.inflateMenu(R.menu.add_menu) - toolbar.setOnMenuItemClickListener { - if (commentEditorFragment?.getEditText()?.text.isNullOrEmpty()) { - commentEditorFragment?.getEditText()?.error = getString(R.string.required_field) - } else { - commentEditorFragment?.getEditText()?.error = null - commentCallback?.onCommentAdded(InputHelper.toString(commentEditorFragment?.getEditText()?.text), - item, arguments!!.getBundle(BundleConstant.EXTRA)) - dismiss() + val context = context ?: return + when (item.color) { + CommitLinesModel.ADDITION -> textView.setBackgroundColor(ViewHelper.getPatchAdditionColor(context)) + CommitLinesModel.DELETION -> textView.setBackgroundColor(ViewHelper.getPatchDeletionColor(context)) + CommitLinesModel.PATCH -> textView.setBackgroundColor(ViewHelper.getPatchRefColor(context)) + else -> textView.setBackgroundColor(Color.TRANSPARENT) + } + if (item.noNewLine) { + textView.text = SpannableBuilder.builder().append(item.text.replace(spacePattern, " ")).append(" ") + .append(ContextCompat.getDrawable(context, R.drawable.ic_newline)) + } else { + textView.text = item.text.replace(spacePattern, " ") + } + toolbar.setTitle(R.string.add_comment) + toolbar.setNavigationIcon(R.drawable.ic_clear) + toolbar.setNavigationOnClickListener { dismiss() } + toolbar.inflateMenu(R.menu.add_menu) + toolbar.setOnMenuItemClickListener { + if (commentEditorFragment?.getEditText()?.text.isNullOrEmpty()) { + commentEditorFragment?.getEditText()?.error = getString(R.string.required_field) + } else { + commentEditorFragment?.getEditText()?.error = null + commentCallback?.onCommentAdded( + InputHelper.toString(commentEditorFragment?.getEditText()?.text), + item, arguments!!.getBundle(BundleConstant.EXTRA) + ) + dismiss() + } + return@setOnMenuItemClickListener true } - return@setOnMenuItemClickListener true } + } override fun providePresenter(): BasePresenter = BasePresenter() @@ -103,9 +107,9 @@ class AddReviewDialogFragment : BaseDialogFragment if (!canPlaySound) return@setOnCheckedChangeListener val sound = radioGroup.getChildAt(id).tag as NotificationSoundModel - if (mediaPlayer.isPlaying) mediaPlayer.stop() + if (mediaPlayer.isPlaying) { + mediaPlayer.stop() + } mediaPlayer.reset() - mediaPlayer.setDataSource(context, sound.uri) - mediaPlayer.prepare() - mediaPlayer.start() + sound.uri?.let { + mediaPlayer.setDataSource(requireContext(), it) + mediaPlayer.prepare() + mediaPlayer.start() + } } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/theme/fragment/ThemeFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/theme/fragment/ThemeFragment.kt index 0e79bf0b..1a01bd96 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/theme/fragment/ThemeFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/theme/fragment/ThemeFragment.kt @@ -5,8 +5,8 @@ import android.content.Context import android.content.Intent import android.graphics.Color import android.os.Bundle -import android.support.design.widget.FloatingActionButton -import android.support.v7.widget.Toolbar +import com.google.android.material.floatingactionbutton.FloatingActionButton +import androidx.appcompat.widget.Toolbar import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.View @@ -37,7 +37,7 @@ class ThemeFragment : BaseFragment(context, android.R.layout.simple_list_item_1, - android.R.id.text1, mentions.subList(0, Math.min(mentions.size, 3))) + val mentions = it.filter { + it.toLowerCase(Locale.getDefault()) + .startsWith( + mentioning.replace("@", "").toLowerCase(Locale.getDefault()) + ) + } + val adapter = ArrayAdapter( + context, android.R.layout.simple_list_item_1, + android.R.id.text1, mentions.subList(0, Math.min(mentions.size, 3)) + ) mention?.setAdapter(adapter) } } diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseRecyclerAdapter.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseRecyclerAdapter.java index a364590e..405d4636 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseRecyclerAdapter.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseRecyclerAdapter.java @@ -1,10 +1,10 @@ package com.fastaccess.ui.widgets.recyclerview; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseViewHolder.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseViewHolder.java index 6f4b3d9a..80a3e5d4 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BaseViewHolder.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.widgets.recyclerview; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BottomPaddingDecoration.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BottomPaddingDecoration.java index 8a1ab7d2..f64b5560 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BottomPaddingDecoration.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/BottomPaddingDecoration.java @@ -2,11 +2,11 @@ package com.fastaccess.ui.widgets.recyclerview; import android.content.Context; import android.graphics.Rect; -import android.support.annotation.NonNull; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.view.View; import com.fastaccess.R; diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/DynamicRecyclerView.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/DynamicRecyclerView.java index b7df17ba..29b31c04 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/DynamicRecyclerView.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/DynamicRecyclerView.java @@ -2,12 +2,12 @@ package com.fastaccess.ui.widgets.recyclerview; import android.content.Context; import android.content.res.Resources; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.util.AttributeSet; import android.view.View; diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/InsetDividerDecoration.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/InsetDividerDecoration.java index 991ecfc6..17677ee7 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/InsetDividerDecoration.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/InsetDividerDecoration.java @@ -3,10 +3,10 @@ package com.fastaccess.ui.widgets.recyclerview; import android.graphics.Canvas; import android.graphics.Paint; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; /** diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/ProgressBarViewHolder.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/ProgressBarViewHolder.java index a34127c0..845cf9b2 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/ProgressBarViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/ProgressBarViewHolder.java @@ -1,6 +1,6 @@ package com.fastaccess.ui.widgets.recyclerview; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/GridManager.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/GridManager.java index 9f3cc68f..5da83d04 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/GridManager.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/GridManager.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.widgets.recyclerview.layout_manager; import android.content.Context; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; /** diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/LinearManager.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/LinearManager.java index 2d830d36..60806a83 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/LinearManager.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/LinearManager.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.widgets.recyclerview.layout_manager; import android.content.Context; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; /** diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/StaggeredManager.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/StaggeredManager.java index 46a75430..0f866dda 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/StaggeredManager.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/StaggeredManager.java @@ -1,8 +1,8 @@ package com.fastaccess.ui.widgets.recyclerview.layout_manager; import android.content.Context; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.util.AttributeSet; /** diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/InfiniteScroll.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/InfiniteScroll.java index 7a55a496..c197ce47 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/InfiniteScroll.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/InfiniteScroll.java @@ -1,9 +1,9 @@ package com.fastaccess.ui.widgets.recyclerview.scroll; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerViewFastScroller.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerViewFastScroller.java index f16a7e69..a5a2842b 100755 --- a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerViewFastScroller.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerViewFastScroller.java @@ -3,12 +3,12 @@ package com.fastaccess.ui.widgets.recyclerview.scroll; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.design.widget.AppBarLayout; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import com.google.android.material.appbar.AppBarLayout; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.MotionEvent; diff --git a/app/src/main/java/com/prettifier/pretty/NestedWebView.java b/app/src/main/java/com/prettifier/pretty/NestedWebView.java index 500f3023..2d51d69d 100644 --- a/app/src/main/java/com/prettifier/pretty/NestedWebView.java +++ b/app/src/main/java/com/prettifier/pretty/NestedWebView.java @@ -3,11 +3,11 @@ package com.prettifier.pretty; import android.annotation.SuppressLint; import android.content.Context; import android.os.Build; -import android.support.annotation.RequiresApi; -import android.support.v4.view.MotionEventCompat; -import android.support.v4.view.NestedScrollingChild; -import android.support.v4.view.NestedScrollingChildHelper; -import android.support.v4.view.ViewCompat; +import androidx.annotation.RequiresApi; +import androidx.core.view.MotionEventCompat; +import androidx.core.view.NestedScrollingChild; +import androidx.core.view.NestedScrollingChildHelper; +import androidx.core.view.ViewCompat; import android.util.AttributeSet; import android.view.MotionEvent; import android.webkit.WebView; diff --git a/app/src/main/java/com/prettifier/pretty/PrettifyWebView.java b/app/src/main/java/com/prettifier/pretty/PrettifyWebView.java index bcfe5c55..d7a8451f 100644 --- a/app/src/main/java/com/prettifier/pretty/PrettifyWebView.java +++ b/app/src/main/java/com/prettifier/pretty/PrettifyWebView.java @@ -5,8 +5,8 @@ import android.content.Context; import android.content.res.TypedArray; import android.net.Uri; import android.os.Build; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; diff --git a/app/src/main/java/com/prettifier/pretty/helper/CodeThemesHelper.java b/app/src/main/java/com/prettifier/pretty/helper/CodeThemesHelper.java index f00c3cc6..87974e6f 100644 --- a/app/src/main/java/com/prettifier/pretty/helper/CodeThemesHelper.java +++ b/app/src/main/java/com/prettifier/pretty/helper/CodeThemesHelper.java @@ -1,6 +1,6 @@ package com.prettifier.pretty.helper; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.annimon.stream.Stream; import com.fastaccess.App; diff --git a/app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java b/app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java index 03cc2cb4..73859e42 100644 --- a/app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java +++ b/app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java @@ -2,8 +2,8 @@ package com.prettifier.pretty.helper; import android.content.Context; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.fastaccess.data.dao.NameParser; import com.fastaccess.helper.PrefGetter; diff --git a/app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java b/app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java index 7f3087f3..3cdf1f4a 100644 --- a/app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java +++ b/app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java @@ -1,6 +1,6 @@ package com.prettifier.pretty.helper; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; /** * Created by Kosh on 25 Dec 2016, 9:12 PM diff --git a/app/src/main/res/layouts/main_layouts/layout-land/bottom_fab.xml b/app/src/main/res/layouts/main_layouts/layout-land/bottom_fab.xml index 2a5fb4b0..f543c080 100644 --- a/app/src/main/res/layouts/main_layouts/layout-land/bottom_fab.xml +++ b/app/src/main/res/layouts/main_layouts/layout-land/bottom_fab.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout-land/header_title_with_toolbar.xml b/app/src/main/res/layouts/main_layouts/layout-land/header_title_with_toolbar.xml index bb6ef69f..c41fbd76 100644 --- a/app/src/main/res/layouts/main_layouts/layout-land/header_title_with_toolbar.xml +++ b/app/src/main/res/layouts/main_layouts/layout-land/header_title_with_toolbar.xml @@ -1,5 +1,5 @@ - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout-land/repo_file_header_layout.xml b/app/src/main/res/layouts/main_layouts/layout-land/repo_file_header_layout.xml index 64e4787b..079958ee 100644 --- a/app/src/main/res/layouts/main_layouts/layout-land/repo_file_header_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout-land/repo_file_header_layout.xml @@ -66,7 +66,7 @@ android:layout_gravity="center" android:src="@drawable/ic_arrow_right"/> - - - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout-sw600dp/repo_file_header_layout.xml b/app/src/main/res/layouts/main_layouts/layout-sw600dp/repo_file_header_layout.xml index 645aabea..48113abf 100644 --- a/app/src/main/res/layouts/main_layouts/layout-sw600dp/repo_file_header_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout-sw600dp/repo_file_header_layout.xml @@ -68,7 +68,7 @@ android:layout_gravity="center" android:src="@drawable/ic_arrow_right"/> - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/activity_fragment_layout.xml b/app/src/main/res/layouts/main_layouts/layout/activity_fragment_layout.xml index 6af3b366..eca94184 100644 --- a/app/src/main/res/layouts/main_layouts/layout/activity_fragment_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/activity_fragment_layout.xml @@ -1,5 +1,5 @@ - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/activity_main_view.xml b/app/src/main/res/layouts/main_layouts/layout/activity_main_view.xml index c8d09784..b9a218ca 100644 --- a/app/src/main/res/layouts/main_layouts/layout/activity_main_view.xml +++ b/app/src/main/res/layouts/main_layouts/layout/activity_main_view.xml @@ -1,5 +1,5 @@ - - - + @@ -37,4 +37,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/activity_search_file.xml b/app/src/main/res/layouts/main_layouts/layout/activity_search_file.xml index 5baebfb0..3362c3e1 100644 --- a/app/src/main/res/layouts/main_layouts/layout/activity_search_file.xml +++ b/app/src/main/res/layouts/main_layouts/layout/activity_search_file.xml @@ -1,18 +1,18 @@ - - - - - - + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/activity_search_user.xml b/app/src/main/res/layouts/main_layouts/layout/activity_search_user.xml index 3550d2ad..4b7f77bd 100644 --- a/app/src/main/res/layouts/main_layouts/layout/activity_search_user.xml +++ b/app/src/main/res/layouts/main_layouts/layout/activity_search_user.xml @@ -8,13 +8,13 @@ android:orientation="vertical" tools:context="com.fastaccess.ui.modules.search.SearchUserActivity"> - - - + - + - - - + - - + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/add_review_dialog_layout.xml b/app/src/main/res/layouts/main_layouts/layout/add_review_dialog_layout.xml index 62cabc42..eab741ad 100644 --- a/app/src/main/res/layouts/main_layouts/layout/add_review_dialog_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/add_review_dialog_layout.xml @@ -7,7 +7,7 @@ - - - - - @@ -74,8 +74,8 @@ android:layout_width="match_parent" android:layout_height="match_parent"/> - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/commit_pager_activity.xml b/app/src/main/res/layouts/main_layouts/layout/commit_pager_activity.xml index a6db0cd7..7fe9294c 100644 --- a/app/src/main/res/layouts/main_layouts/layout/commit_pager_activity.xml +++ b/app/src/main/res/layouts/main_layouts/layout/commit_pager_activity.xml @@ -1,5 +1,5 @@ - - - - - + - - + - - + - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/create_gist_layout.xml b/app/src/main/res/layouts/main_layouts/layout/create_gist_layout.xml index 0b94c410..a0377824 100644 --- a/app/src/main/res/layouts/main_layouts/layout/create_gist_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/create_gist_layout.xml @@ -11,7 +11,7 @@ - - - - - + + - - - - - - + - + - - + - - + @@ -141,7 +141,7 @@ android:paddingTop="@dimen/spacing_normal" android:text="@string/labels"/> - - + @@ -174,7 +174,7 @@ android:paddingTop="@dimen/spacing_normal" android:text="@string/milestone"/> - - + @@ -212,7 +212,7 @@ - - - - - + - - - + - + - - - - + - - - + - + - - - - + - + diff --git a/app/src/main/res/layouts/main_layouts/layout/delete_repo_file_layout.xml b/app/src/main/res/layouts/main_layouts/layout/delete_repo_file_layout.xml index fd278f40..aa523e92 100644 --- a/app/src/main/res/layouts/main_layouts/layout/delete_repo_file_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/delete_repo_file_layout.xml @@ -8,7 +8,7 @@ android:background="?android:windowBackground" android:orientation="vertical"> - - - - - + + - - - - - + + - - + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/edit_repo_file_layout.xml b/app/src/main/res/layouts/main_layouts/layout/edit_repo_file_layout.xml index 64bb5eb2..4a6af64e 100644 --- a/app/src/main/res/layouts/main_layouts/layout/edit_repo_file_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/edit_repo_file_layout.xml @@ -13,11 +13,11 @@ - - - - - - - + + - - - - - + + - + - + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/emoji_popup_layout.xml b/app/src/main/res/layouts/main_layouts/layout/emoji_popup_layout.xml index 417978f3..6eeb9544 100644 --- a/app/src/main/res/layouts/main_layouts/layout/emoji_popup_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/emoji_popup_layout.xml @@ -31,13 +31,13 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/filter_bottom_sheet.xml b/app/src/main/res/layouts/main_layouts/layout/filter_bottom_sheet.xml index 6f245ba3..835c9350 100644 --- a/app/src/main/res/layouts/main_layouts/layout/filter_bottom_sheet.xml +++ b/app/src/main/res/layouts/main_layouts/layout/filter_bottom_sheet.xml @@ -7,19 +7,19 @@ android:background="?android:windowBackground" android:orientation="vertical"> - - - - - + + - - - - - - - - + - + - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/full_screen_file_changes_layout.xml b/app/src/main/res/layouts/main_layouts/layout/full_screen_file_changes_layout.xml index db01da07..779d3d32 100644 --- a/app/src/main/res/layouts/main_layouts/layout/full_screen_file_changes_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/full_screen_file_changes_layout.xml @@ -1,18 +1,18 @@ - - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/general_viewer_layout.xml b/app/src/main/res/layouts/main_layouts/layout/general_viewer_layout.xml index 459b2411..d63cf4f8 100644 --- a/app/src/main/res/layouts/main_layouts/layout/general_viewer_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/general_viewer_layout.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - + - - - - - - + - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml b/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml index fb96b9ae..38aa53d7 100644 --- a/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml @@ -1,5 +1,5 @@ - - - - - + - - + - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/header_title_with_toolbar.xml b/app/src/main/res/layouts/main_layouts/layout/header_title_with_toolbar.xml index 497906b1..8a9a7902 100644 --- a/app/src/main/res/layouts/main_layouts/layout/header_title_with_toolbar.xml +++ b/app/src/main/res/layouts/main_layouts/layout/header_title_with_toolbar.xml @@ -1,5 +1,5 @@ - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/issue_pager_activity.xml b/app/src/main/res/layouts/main_layouts/layout/issue_pager_activity.xml index dc553a76..9f395901 100644 --- a/app/src/main/res/layouts/main_layouts/layout/issue_pager_activity.xml +++ b/app/src/main/res/layouts/main_layouts/layout/issue_pager_activity.xml @@ -1,5 +1,5 @@ - - - - - + - - + - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/issue_popup_layout.xml b/app/src/main/res/layouts/main_layouts/layout/issue_popup_layout.xml index 94eba3c5..753843f3 100644 --- a/app/src/main/res/layouts/main_layouts/layout/issue_popup_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/issue_popup_layout.xml @@ -12,7 +12,7 @@ - - - + - - + @@ -137,7 +137,7 @@ android:paddingStart="@dimen/spacing_xs_large" android:text="@string/labels"/> - - + @@ -173,7 +173,7 @@ android:paddingStart="@dimen/spacing_xs_large" android:text="@string/milestone"/> - - + - + - - - @@ -23,7 +23,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - + - - + - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/login_form_layout.xml b/app/src/main/res/layouts/main_layouts/layout/login_form_layout.xml index 1eb921c5..eee3e3f2 100644 --- a/app/src/main/res/layouts/main_layouts/layout/login_form_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/login_form_layout.xml @@ -1,5 +1,5 @@ - - - - - - + - - - + - - - + - - - + - - + - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/main_nav_fragment_layout.xml b/app/src/main/res/layouts/main_layouts/layout/main_nav_fragment_layout.xml index f837f1f5..76326e19 100644 --- a/app/src/main/res/layouts/main_layouts/layout/main_nav_fragment_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/main_nav_fragment_layout.xml @@ -1,5 +1,5 @@ - - - - + - - - + diff --git a/app/src/main/res/layouts/main_layouts/layout/merge_dialog_layout.xml b/app/src/main/res/layouts/main_layouts/layout/merge_dialog_layout.xml index 50d3c6de..77dfa1ab 100644 --- a/app/src/main/res/layouts/main_layouts/layout/merge_dialog_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/merge_dialog_layout.xml @@ -10,19 +10,19 @@ android:padding="@dimen/spacing_xs_large"> - - - + - - - - - - - + - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/notifications_bottom_sheet_layout.xml b/app/src/main/res/layouts/main_layouts/layout/notifications_bottom_sheet_layout.xml index 2b0ff5a0..386d47c8 100644 --- a/app/src/main/res/layouts/main_layouts/layout/notifications_bottom_sheet_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/notifications_bottom_sheet_layout.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/picker_dialog.xml b/app/src/main/res/layouts/main_layouts/layout/picker_dialog.xml index 3db32c5a..24a1c943 100644 --- a/app/src/main/res/layouts/main_layouts/layout/picker_dialog.xml +++ b/app/src/main/res/layouts/main_layouts/layout/picker_dialog.xml @@ -18,7 +18,7 @@ android:textStyle="bold"/> - @@ -38,7 +38,7 @@ - + - - - - - - - - - + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml index 5b32d310..7c421f19 100644 --- a/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/repo_file_header_layout.xml b/app/src/main/res/layouts/main_layouts/layout/repo_file_header_layout.xml index b3cb4ae9..f83a357e 100644 --- a/app/src/main/res/layouts/main_layouts/layout/repo_file_header_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/repo_file_header_layout.xml @@ -65,7 +65,7 @@ android:layout_gravity="center" android:src="@drawable/ic_arrow_right"/> - - - - - + - + @@ -50,4 +50,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/review_changes_bottom_layout.xml b/app/src/main/res/layouts/main_layouts/layout/review_changes_bottom_layout.xml index 2441b414..ab19f3ad 100644 --- a/app/src/main/res/layouts/main_layouts/layout/review_changes_bottom_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/review_changes_bottom_layout.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/review_comment_dialog_layout.xml b/app/src/main/res/layouts/main_layouts/layout/review_comment_dialog_layout.xml index 1805f931..1ba57aa9 100644 --- a/app/src/main/res/layouts/main_layouts/layout/review_comment_dialog_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/review_comment_dialog_layout.xml @@ -20,7 +20,7 @@ android:orientation="horizontal" android:padding="@dimen/spacing_xs_large"> - - - - - - + - - + - + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/support_development_layout.xml b/app/src/main/res/layouts/main_layouts/layout/support_development_layout.xml index 9cb4207b..6626d224 100644 --- a/app/src/main/res/layouts/main_layouts/layout/support_development_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/support_development_layout.xml @@ -1,18 +1,18 @@ - - - - - - + + - - - + - - + - - + - - + - + @@ -175,4 +175,4 @@ android:text="@string/fasthub_premium_features"/> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/tabbed_pager_layout.xml b/app/src/main/res/layouts/main_layouts/layout/tabbed_pager_layout.xml index 24b893f0..5b95249c 100644 --- a/app/src/main/res/layouts/main_layouts/layout/tabbed_pager_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/tabbed_pager_layout.xml @@ -1,5 +1,5 @@ - - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/tabbed_viewpager.xml b/app/src/main/res/layouts/main_layouts/layout/tabbed_viewpager.xml index cdd42087..987b1152 100644 --- a/app/src/main/res/layouts/main_layouts/layout/tabbed_viewpager.xml +++ b/app/src/main/res/layouts/main_layouts/layout/tabbed_viewpager.xml @@ -8,7 +8,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - - - - - - + + - - + diff --git a/app/src/main/res/layouts/main_layouts/layout/theme_layout.xml b/app/src/main/res/layouts/main_layouts/layout/theme_layout.xml index 43ffbbf0..8de081fe 100644 --- a/app/src/main/res/layouts/main_layouts/layout/theme_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/theme_layout.xml @@ -1,5 +1,5 @@ - - - - + - @@ -371,7 +371,7 @@ - - + - - + - - + - - + - - + - - + - + - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/toolbar_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/toolbar_activity_layout.xml index e324ce5c..c3b4f65c 100644 --- a/app/src/main/res/layouts/main_layouts/layout/toolbar_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/toolbar_activity_layout.xml @@ -1,5 +1,5 @@ - - @@ -27,7 +27,7 @@ app:layout_behavior="@string/scroll_behavior"/> - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml index 084f905b..4e84bad2 100644 --- a/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/trending_activity_layout.xml @@ -1,5 +1,5 @@ - - @@ -27,12 +27,12 @@ app:layout_behavior="@string/scroll_behavior" tools:layout="@layout/micro_grid_refresh_list" /> - + - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/view_pager_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/view_pager_activity_layout.xml index b20450d3..5f10c5d8 100644 --- a/app/src/main/res/layouts/main_layouts/layout/view_pager_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/view_pager_activity_layout.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/main_layouts/layout/wiki_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/wiki_activity_layout.xml index ea30ccb2..6f9628fb 100644 --- a/app/src/main/res/layouts/main_layouts/layout/wiki_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/wiki_activity_layout.xml @@ -1,5 +1,5 @@ - - @@ -47,12 +47,12 @@ - + - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout-land/appbar_start_margin.xml b/app/src/main/res/layouts/other_layouts/layout-land/appbar_start_margin.xml index cd2f7e30..4bca7cb2 100644 --- a/app/src/main/res/layouts/other_layouts/layout-land/appbar_start_margin.xml +++ b/app/src/main/res/layouts/other_layouts/layout-land/appbar_start_margin.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout-sw600dp/appbar_start_margin.xml b/app/src/main/res/layouts/other_layouts/layout-sw600dp/appbar_start_margin.xml index 6f1f12da..13eb25b2 100644 --- a/app/src/main/res/layouts/other_layouts/layout-sw600dp/appbar_start_margin.xml +++ b/app/src/main/res/layouts/other_layouts/layout-sw600dp/appbar_start_margin.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout/appbar_elevation_dark.xml b/app/src/main/res/layouts/other_layouts/layout/appbar_elevation_dark.xml index 7275e736..b01049db 100644 --- a/app/src/main/res/layouts/other_layouts/layout/appbar_elevation_dark.xml +++ b/app/src/main/res/layouts/other_layouts/layout/appbar_elevation_dark.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout/appbar_start_margin.xml b/app/src/main/res/layouts/other_layouts/layout/appbar_start_margin.xml index cb6c6111..3be32137 100644 --- a/app/src/main/res/layouts/other_layouts/layout/appbar_start_margin.xml +++ b/app/src/main/res/layouts/other_layouts/layout/appbar_start_margin.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout/appbar_tabbed_elevation.xml b/app/src/main/res/layouts/other_layouts/layout/appbar_tabbed_elevation.xml index 412be004..02d7d106 100644 --- a/app/src/main/res/layouts/other_layouts/layout/appbar_tabbed_elevation.xml +++ b/app/src/main/res/layouts/other_layouts/layout/appbar_tabbed_elevation.xml @@ -1,5 +1,5 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout/dialog_guide_layout.xml b/app/src/main/res/layouts/other_layouts/layout/dialog_guide_layout.xml index 26fe04f7..a7fb75db 100644 --- a/app/src/main/res/layouts/other_layouts/layout/dialog_guide_layout.xml +++ b/app/src/main/res/layouts/other_layouts/layout/dialog_guide_layout.xml @@ -8,12 +8,12 @@ android:background="?android:attr/windowBackground" android:orientation="vertical"> - - @@ -48,8 +48,8 @@ android:textColor="?android:textColorPrimary" tools:text="Remember: shreded ramen tastes best when flattened in a sauté pan enameled with rum."/> - - + + - - @@ -61,7 +61,7 @@ android:textColor="?android:attr/textColorSecondary"/> - + - @@ -55,7 +55,7 @@ tools:text="Hello World"/> - + - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/other_layouts/layout/simple_footer_list_dialog.xml b/app/src/main/res/layouts/other_layouts/layout/simple_footer_list_dialog.xml index bba7212d..afc08519 100644 --- a/app/src/main/res/layouts/other_layouts/layout/simple_footer_list_dialog.xml +++ b/app/src/main/res/layouts/other_layouts/layout/simple_footer_list_dialog.xml @@ -8,11 +8,11 @@ android:background="?android:attr/windowBackground" android:orientation="vertical"> - - - - + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/commit_file_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/commit_file_row_item.xml index ad1ff13d..65db8025 100644 --- a/app/src/main/res/layouts/row_layouts/layout/commit_file_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/commit_file_row_item.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/commit_line_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/commit_line_row_item.xml index 6e150791..fa051077 100644 --- a/app/src/main/res/layouts/row_layouts/layout/commit_line_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/commit_line_row_item.xml @@ -14,7 +14,7 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/gist_files_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/gist_files_row_item.xml index 63c3accc..c023d2c1 100644 --- a/app/src/main/res/layouts/row_layouts/layout/gist_files_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/gist_files_row_item.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/grouped_review_timeline_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/grouped_review_timeline_row_item.xml index 65166bc1..1cfe41ad 100644 --- a/app/src/main/res/layouts/row_layouts/layout/grouped_review_timeline_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/grouped_review_timeline_row_item.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/issue_no_image_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/issue_no_image_row_item.xml index d2b3b62a..71e23622 100644 --- a/app/src/main/res/layouts/row_layouts/layout/issue_no_image_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/issue_no_image_row_item.xml @@ -22,7 +22,7 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - diff --git a/app/src/main/res/layouts/row_layouts/layout/no_emojies_comments_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/no_emojies_comments_row_item.xml index fda14300..54e5bdb6 100644 --- a/app/src/main/res/layouts/row_layouts/layout/no_emojies_comments_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/no_emojies_comments_row_item.xml @@ -54,7 +54,7 @@ android:textColor="?android:attr/textColorSecondary" tools:text="50 minutes"/> - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/org_profile_overview_layout.xml b/app/src/main/res/layouts/row_layouts/layout/org_profile_overview_layout.xml index ffc615d4..1f2d3dfb 100644 --- a/app/src/main/res/layouts/row_layouts/layout/org_profile_overview_layout.xml +++ b/app/src/main/res/layouts/row_layouts/layout/org_profile_overview_layout.xml @@ -1,4 +1,4 @@ - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/profile_overview_layout.xml b/app/src/main/res/layouts/row_layouts/layout/profile_overview_layout.xml index 2c3840a1..dfaa3b8a 100644 --- a/app/src/main/res/layouts/row_layouts/layout/profile_overview_layout.xml +++ b/app/src/main/res/layouts/row_layouts/layout/profile_overview_layout.xml @@ -1,5 +1,5 @@ - - - + - - + - - + - - + @@ -300,4 +300,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/pullrequest_file_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/pullrequest_file_row_item.xml index 59be4ff8..54724279 100644 --- a/app/src/main/res/layouts/row_layouts/layout/pullrequest_file_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/pullrequest_file_row_item.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/trending_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/trending_row_item.xml index ae58c714..66d22014 100644 --- a/app/src/main/res/layouts/row_layouts/layout/trending_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/trending_row_item.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 70b8ac7a..c7749ffd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,12 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - butterKnifeVersion = '8.5.1' - state_version = '1.2.0' + butterKnifeVersion = '10.2.1' + state_version = '1.4.1' lombokVersion = '1.16.20' supportVersion = "27.1.0" gms = "12.0.0" - thirtyinchVersion = '0.8.0' + thirtyinchVersion = '0.9.6' retrofit = '2.3.0' junitVersion = '4.12' mockitoVersion = '1.10.19' @@ -15,7 +15,7 @@ buildscript { requery = '1.3.2' kotlin_version = '1.3.61' commonmark = '0.10.0' - glideVersion = '3.7.0' + glideVersion = '4.10.0' } repositories { google() @@ -25,7 +25,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}" - classpath 'com.google.gms:google-services:3.2.0' + classpath 'com.google.gms:google-services:4.3.3' classpath 'com.novoda:gradle-build-properties-plugin:0.4.1' classpath 'io.fabric.tools:gradle:1.31.2' classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.2.2' From ce55ee611ad83ee49efe772684be33288039a421 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 11:50:06 +0100 Subject: [PATCH 20/59] add changelog --- .../ui/base/BaseBottomSheetDialog.java | 8 +-- .../other_layouts/layout/message_dialog.xml | 34 ++++++------- app/src/main/res/raw/changelog.html | 50 +++---------------- 3 files changed, 30 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java b/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java index 0bcfb974..5a9d7ee5 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseBottomSheetDialog.java @@ -19,6 +19,8 @@ import com.evernote.android.state.StateSaver; import com.fastaccess.R; import com.fastaccess.helper.ViewHelper; +import org.jetbrains.annotations.NotNull; + import butterknife.ButterKnife; import butterknife.Unbinder; @@ -53,7 +55,7 @@ import butterknife.Unbinder; super.onViewCreated(view, savedInstanceState); } - @Override public void onSaveInstanceState(Bundle outState) { + @Override public void onSaveInstanceState(@NotNull Bundle outState) { super.onSaveInstanceState(outState); StateSaver.saveInstanceState(this, outState); } @@ -66,7 +68,7 @@ import butterknife.Unbinder; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - final Context contextThemeWrapper = new ContextThemeWrapper(getContext(), getContext().getTheme()); + final Context contextThemeWrapper = new ContextThemeWrapper(getContext(), requireContext().getTheme()); LayoutInflater themeAwareInflater = inflater.cloneInContext(contextThemeWrapper); View view = themeAwareInflater.inflate(layoutRes(), container, false); unbinder = ButterKnife.bind(this, view); @@ -98,7 +100,7 @@ import butterknife.Unbinder; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.setOnShowListener(dialogInterface -> { - if (ViewHelper.isTablet(getActivity())) { + if (ViewHelper.isTablet(requireContext())) { if (dialog.getWindow() != null) { dialog.getWindow().setLayout( ViewGroup.LayoutParams.WRAP_CONTENT, diff --git a/app/src/main/res/layouts/other_layouts/layout/message_dialog.xml b/app/src/main/res/layouts/other_layouts/layout/message_dialog.xml index ada6954a..e6b9f967 100644 --- a/app/src/main/res/layouts/other_layouts/layout/message_dialog.xml +++ b/app/src/main/res/layouts/other_layouts/layout/message_dialog.xml @@ -1,13 +1,12 @@ - + android:orientation="vertical"> + tools:text="How jolly. You loot like a mast." /> + android:visibility="gone" + app:webview_background="?card_background" + tools:visibility="visible" /> + tools:text="Hello World" /> @@ -62,8 +62,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="end" - android:paddingBottom="@dimen/spacing_normal" - android:paddingTop="@dimen/spacing_normal"> + android:paddingTop="@dimen/spacing_normal" + android:paddingBottom="@dimen/spacing_normal"> + android:textColor="@color/material_pink_700" /> + android:textColor="?colorAccent" /> @@ -94,5 +94,5 @@ android:layout_height="wrap_content" android:layout_gravity="top|end|center" android:visibility="gone" - tools:visibility="visible"/> + tools:visibility="visible" /> \ No newline at end of file diff --git a/app/src/main/res/raw/changelog.html b/app/src/main/res/raw/changelog.html index e06f517b..72ff2ab1 100644 --- a/app/src/main/res/raw/changelog.html +++ b/app/src/main/res/raw/changelog.html @@ -6,50 +6,16 @@ -

FastHub changelog -

-

Version 4.6.7 -

-
-

Please report the issues in FastHub repo instead, by opening the Drawer Menu and clicking on “Report an Issue” - PLEASE USE IT. -

-
-

Fixed bugs:

+

What’s new?

    -
  • Logout menu item doesn't work #1664
  • -
  • Crash on clicking Home from the Navigation Drawer when I'm on the Home screen itself #1652
  • -
  • Empty commit protection #1671
  • -
  • Cannot unpin pinned gist #1575
  • +
  • Fix Trending (Finally, I KNOW!)
  • +
  • Fix Wiki (I know, I know…)
  • +
  • Migrate to Androidx
-

Closed issues:

-
    -
  • Scrolling Down when Opening the Profile Section (Right) #1625
  • -
  • Adding an assignee to an issue shows a send icon #1624
  • -
  • Star counter resets #1601
  • -
  • Remove extra code #1596
  • -
  • Update message gets stuck #1440
  • -
-

Merged pull requests:

- -

What's left for FastHub? -

-
-

- So far, FastHub has implemented all the features of GitHub. I'll continue to fix bugs and implement feature requests if there - are any! - -

-
+

I hear you asking (So what happened)?

+

Well, I was pretty much busy with life and work, but that’s not an excuse, I know!. TBH with you all, I started working on FastHub v5 beginning of last year and I did actually made a good progress but then crisis landed on me when my mom diagnostic with cancer and that really stroke me hard and demotivated me to even care about my own health, it took awhile for me to recover and start accepting this fact and i’m still trying to figure out way to motivate myself more to progress on FastHub or anything in the Open Source Community.

+

TL;DR: this is just a bug fix version and I will continue to fix bugs until V5 is ready for shipment.

+

Thank you to all who have contributed either via reporting bugs or via code contribution.

From a95bbd6140eb8faf838d51456b2467d68ced3165 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 12:00:55 +0100 Subject: [PATCH 21/59] added androidx properties --- .gitignore | 2 +- gradle.properties | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 gradle.properties diff --git a/.gitignore b/.gitignore index 1ec699f2..26049c9b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ /local.properties .DS_Store /build -/gradle.properties +/release_gradle.properties /.idea/ /app/google-services.json /app/build/ diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..5465fec0 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +android.enableJetifier=true +android.useAndroidX=true \ No newline at end of file From d4f2d80934b4f8a83eb6b433b13b614cc3b10acf Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 12:12:22 +0100 Subject: [PATCH 22/59] allow back press in FAQ screen --- .../ui/modules/main/playstore/PlayStoreWarningActivity.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/playstore/PlayStoreWarningActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/main/playstore/PlayStoreWarningActivity.kt index 4c83c974..a06c4db2 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/playstore/PlayStoreWarningActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/main/playstore/PlayStoreWarningActivity.kt @@ -30,8 +30,6 @@ class PlayStoreWarningActivity : BaseActivity = BasePresenter() - override fun onBackPressed() {} - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val textView = findViewById(R.id.description) From 6e163d159fd2c52dc079c62100399d16da01d25f Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 12:37:40 +0100 Subject: [PATCH 23/59] increase memory for builds --- app/src/main/res/raw/changelog.html | 6 +++++- debug_gradle.properties | 1 - gradle.properties | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/raw/changelog.html b/app/src/main/res/raw/changelog.html index 72ff2ab1..056c8c18 100644 --- a/app/src/main/res/raw/changelog.html +++ b/app/src/main/res/raw/changelog.html @@ -13,7 +13,11 @@
  • Migrate to Androidx
  • I hear you asking (So what happened)?

    -

    Well, I was pretty much busy with life and work, but that’s not an excuse, I know!. TBH with you all, I started working on FastHub v5 beginning of last year and I did actually made a good progress but then crisis landed on me when my mom diagnostic with cancer and that really stroke me hard and demotivated me to even care about my own health, it took awhile for me to recover and start accepting this fact and i’m still trying to figure out way to motivate myself more to progress on FastHub or anything in the Open Source Community.

    +

    Well, I was pretty much busy with life and work, but that’s not an excuse, I + know!. TBH with you all, I started working on FastHub v5 beginning of last year and I did actually made a good progress but then crisis + landed on me when my mom diagnosed with cancer and that really stroke me hard and demotivated me to even care about my own health, it + took awhile for me to recover and start accepting this fact and i’m still trying to figure out ways to motivate myself more to progress + on FastHub or anything in the Open Source Community.

    TL;DR: this is just a bug fix version and I will continue to fix bugs until V5 is ready for shipment.

    Thank you to all who have contributed either via reporting bugs or via code contribution.

    diff --git a/debug_gradle.properties b/debug_gradle.properties index 1303a8bd..ed21b6c2 100644 --- a/debug_gradle.properties +++ b/debug_gradle.properties @@ -1,5 +1,4 @@ # Below API Keys are meant for debugging purpose & they aren't being used in production. -org.gradle.jvmargs=-Xmx2536M android_store_password=kosh2010 android_key_password=kosh2010 android_key_alias=FastAccess diff --git a/gradle.properties b/gradle.properties index 5465fec0..7198fa92 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,4 @@ +org.gradle.daemon=true +org.gradle.jvmargs=-Xmx2560m android.enableJetifier=true android.useAndroidX=true \ No newline at end of file From 5f45b9f9dd0c198f174176bcad72641060f9d3b9 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 12:42:17 +0100 Subject: [PATCH 24/59] fix gradle --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 33098de6..c21aeedd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ buildProperties { file rootProject.file('debug_gradle.properties') } secrets { - file rootProject.file('gradle.properties') + file rootProject.file('release_gradle.properties') } } From 1bed328fe4a235b452d78b416709b666940f0795 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 13:42:04 +0100 Subject: [PATCH 25/59] hotfix 4.6.9 --- app/build.gradle | 4 +-- .../layout/issue_timeline_row_item.xml | 4 +-- .../layout/review_timeline_row_item.xml | 31 +++++++++---------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c21aeedd..cf08a202 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { applicationId "com.fastaccess.github" minSdkVersion 21 targetSdkVersion 29 - versionCode 468 - versionName "4.6.8" + versionCode 469 + versionName "4.6.9" buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string buildConfigString "IMGUR_CLIENT_ID", (buildProperties.secrets['imgur_client_id'] | buildProperties.notThere['imgur_client_id']).string diff --git a/app/src/main/res/layouts/row_layouts/layout/issue_timeline_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/issue_timeline_row_item.xml index 75cb6b0d..a744a841 100644 --- a/app/src/main/res/layouts/row_layouts/layout/issue_timeline_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/issue_timeline_row_item.xml @@ -41,7 +41,7 @@ - - + \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/review_timeline_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/review_timeline_row_item.xml index 62d97696..bb3604c6 100644 --- a/app/src/main/res/layouts/row_layouts/layout/review_timeline_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/review_timeline_row_item.xml @@ -1,14 +1,13 @@ - + android:layout_marginTop="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/layout_margin" + android:layout_marginBottom="@dimen/spacing_normal"> + tools:src="@drawable/ic_issue_opened" /> - + android:layout_marginStart="@dimen/avatar_margin" + android:layout_marginEnd="@dimen/avatar_margin_end" /> + tools:text="For a divided large loaf, add some champaign and cinnamon." /> + tools:visibility="visible" /> - + \ No newline at end of file From 22011256b537668271b17d346d35acbbac200ad5 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Wed, 25 Dec 2019 13:44:45 +0100 Subject: [PATCH 26/59] log crash to fabric --- .../provider/rest/RestProvider.java | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 31278ed9..5586f998 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -4,11 +4,14 @@ import android.app.DownloadManager; import android.content.Context; import android.net.Uri; import android.os.Environment; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; + import android.text.TextUtils; import android.widget.Toast; +import com.crashlytics.android.Crashlytics; import com.fastaccess.App; import com.fastaccess.BuildConfig; import com.fastaccess.R; @@ -91,31 +94,36 @@ public class RestProvider { } public static void downloadFile(@NonNull Context context, @NonNull String url) { - if (InputHelper.isEmpty(url)) return; - boolean isEnterprise = LinkParserHelper.isEnterprise(url); - Uri uri = Uri.parse(url); - DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); - DownloadManager.Request request = new DownloadManager.Request(uri); - String authToken = isEnterprise ? PrefGetter.getEnterpriseToken() : PrefGetter.getToken(); - if (!TextUtils.isEmpty(authToken)) { - request.addRequestHeader("Authorization", authToken.startsWith("Basic") ? authToken : "token " + authToken); - } - File direct = new File(Environment.getExternalStorageDirectory() + File.separator + context.getString(R.string.app_name)); - if (!direct.isDirectory() || !direct.exists()) { - boolean isCreated = direct.mkdirs(); - if (!isCreated) { - Toast.makeText(App.getInstance(), "Unable to create directory to download file", Toast.LENGTH_SHORT).show(); - return; + try { + if (InputHelper.isEmpty(url)) return; + boolean isEnterprise = LinkParserHelper.isEnterprise(url); + Uri uri = Uri.parse(url); + DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); + DownloadManager.Request request = new DownloadManager.Request(uri); + String authToken = isEnterprise ? PrefGetter.getEnterpriseToken() : PrefGetter.getToken(); + if (!TextUtils.isEmpty(authToken)) { + request.addRequestHeader("Authorization", authToken.startsWith("Basic") ? authToken : "token " + authToken); } - } - String fileName = new File(url).getName(); - request.setDestinationInExternalPublicDir(context.getString(R.string.app_name), fileName); - request.setTitle(fileName); - request.setDescription(context.getString(R.string.downloading_file)); - request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI); - request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); - if (downloadManager != null) { - downloadManager.enqueue(request); + File direct = + new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + File.separator + context.getString(R.string.app_name)); + if (!direct.isDirectory() || !direct.exists()) { + boolean isCreated = direct.mkdirs(); + if (!isCreated) { + Toast.makeText(App.getInstance(), "Unable to create directory to download file", Toast.LENGTH_SHORT).show(); + return; + } + } + String fileName = new File(url).getName(); + request.setDestinationInExternalPublicDir(context.getString(R.string.app_name), fileName); + request.setTitle(fileName); + request.setDescription(context.getString(R.string.downloading_file)); + request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI); + request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); + if (downloadManager != null) { + downloadManager.enqueue(request); + } + } catch (Exception e) { + Crashlytics.logException(e); } } From 5467bb5e8d767a0601067f516787074e5c32e520 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 08:58:08 +0100 Subject: [PATCH 27/59] fix download issue and parcel bug --- .../fastaccess/data/dao/EditRepoFileModel.kt | 9 +++---- .../com/fastaccess/data/dao/TrendingModel.kt | 25 ++++++++++--------- .../data/dao/wiki/WikiContentModel.kt | 3 ++- .../data/dao/wiki/WikiSideBarModel.kt | 9 ++++--- .../com/fastaccess/helper/ParcelableHelper.kt | 4 +-- .../provider/rest/RestProvider.java | 12 ++------- 6 files changed, 28 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt b/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt index 966520ac..09cdedd0 100644 --- a/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/EditRepoFileModel.kt @@ -1,10 +1,7 @@ package com.fastaccess.data.dao import android.os.Parcel -import com.fastaccess.helper.KotlinParcelable -import com.fastaccess.helper.parcelableCreator -import com.fastaccess.helper.readBoolean -import com.fastaccess.helper.writeBoolean +import com.fastaccess.helper.* /** * Created by Hashemsergani on 01/09/2017. @@ -27,7 +24,7 @@ data class EditRepoFileModel( parcel.readString() ?: "", parcel.readString() ?: "", parcel.readString() ?: "", - parcel.readBoolean() + parcel.readBooleanCompat() ) override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) { @@ -38,7 +35,7 @@ data class EditRepoFileModel( writeString(sha) writeString(contentUrl) writeString(fileName) - writeBoolean(isEdit) + writeBooleanCompat(isEdit) } companion object { diff --git a/app/src/main/java/com/fastaccess/data/dao/TrendingModel.kt b/app/src/main/java/com/fastaccess/data/dao/TrendingModel.kt index 7fa39616..f97bbfe1 100644 --- a/app/src/main/java/com/fastaccess/data/dao/TrendingModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/TrendingModel.kt @@ -5,23 +5,24 @@ import com.fastaccess.helper.KotlinParcelable import com.fastaccess.helper.parcelableCreator data class TrendingModel( - val title: String? = null, - val description: String? = null, - val language: String? = null, - val stars: String? = null, - val forks: String? = null, - val todayStars: String? = null) : KotlinParcelable { + val title: String? = null, + val description: String? = null, + val language: String? = null, + val stars: String? = null, + val forks: String? = null, + val todayStars: String? = null +) : KotlinParcelable { companion object { @JvmField val CREATOR = parcelableCreator(::TrendingModel) } constructor(source: Parcel) : this( - source.readString(), - source.readString(), - source.readString(), - source.readString(), - source.readString(), - source.readString() + source.readString(), + source.readString(), + source.readString(), + source.readString(), + source.readString(), + source.readString() ) override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) { diff --git a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt index a8162e86..0de0a421 100644 --- a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiContentModel.kt @@ -8,7 +8,8 @@ import com.fastaccess.helper.parcelableCreator * Created by Kosh on 13 Jun 2017, 8:06 PM */ data class WikiContentModel( - val content: String? = null, private val footer: String? = null, + val content: String? = null, + private val footer: String? = null, val sidebar: List ) : KotlinParcelable { companion object { diff --git a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiSideBarModel.kt b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiSideBarModel.kt index e064d141..6b0780dd 100644 --- a/app/src/main/java/com/fastaccess/data/dao/wiki/WikiSideBarModel.kt +++ b/app/src/main/java/com/fastaccess/data/dao/wiki/WikiSideBarModel.kt @@ -7,14 +7,17 @@ import com.fastaccess.helper.parcelableCreator /** * Created by Kosh on 13 Jun 2017, 8:03 PM */ -data class WikiSideBarModel(val title: String? = null, val link: String? = null) : KotlinParcelable { +data class WikiSideBarModel( + val title: String? = null, + val link: String? = null +) : KotlinParcelable { companion object { @JvmField val CREATOR = parcelableCreator(::WikiSideBarModel) } constructor(source: Parcel) : this( - source.readString(), - source.readString() + source.readString(), + source.readString() ) override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) { diff --git a/app/src/main/java/com/fastaccess/helper/ParcelableHelper.kt b/app/src/main/java/com/fastaccess/helper/ParcelableHelper.kt index 224faeb5..1cc7c582 100644 --- a/app/src/main/java/com/fastaccess/helper/ParcelableHelper.kt +++ b/app/src/main/java/com/fastaccess/helper/ParcelableHelper.kt @@ -13,6 +13,6 @@ inline fun parcelableCreator(crossinline create: (Parcel) -> T) = ob override fun newArray(size: Int) = arrayOfNulls(size) } -fun Parcel.readBoolean() = readInt() != 0 +fun Parcel.readBooleanCompat() = readInt() != 0 -fun Parcel.writeBoolean(value: Boolean) = writeInt(if (value) 1 else 0) +fun Parcel.writeBooleanCompat(value: Boolean) = writeInt(if (value) 1 else 0) diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 5586f998..0f4f8e29 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -104,17 +104,8 @@ public class RestProvider { if (!TextUtils.isEmpty(authToken)) { request.addRequestHeader("Authorization", authToken.startsWith("Basic") ? authToken : "token " + authToken); } - File direct = - new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + File.separator + context.getString(R.string.app_name)); - if (!direct.isDirectory() || !direct.exists()) { - boolean isCreated = direct.mkdirs(); - if (!isCreated) { - Toast.makeText(App.getInstance(), "Unable to create directory to download file", Toast.LENGTH_SHORT).show(); - return; - } - } String fileName = new File(url).getName(); - request.setDestinationInExternalPublicDir(context.getString(R.string.app_name), fileName); + request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); request.setTitle(fileName); request.setDescription(context.getString(R.string.downloading_file)); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI); @@ -123,6 +114,7 @@ public class RestProvider { downloadManager.enqueue(request); } } catch (Exception e) { + e.printStackTrace(); Crashlytics.logException(e); } } From e8d50307a69bc62c540483a759ee52bf4da22492 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 09:04:28 +0100 Subject: [PATCH 28/59] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b29c5d11..4c121ac7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ #### FastHub is currently under a huge refactoring, please make sure to submit an issue only if necessary. -##### Any Pull requests that are not directed to v5 branch will be ignored. You could follow the development on this [PR](https://github.com/k0shk0sh/FastHub/pull/2599) +##### You could follow the development on V5 in this [PR](https://github.com/k0shk0sh/FastHub/pull/2599) [![Build Status](https://travis-ci.org/k0shk0sh/FastHub.svg?branch=master)](https://travis-ci.org/k0shk0sh/FastHub) [![Releases](https://img.shields.io/github/release/k0shk0sh/FastHub.svg)](https://github.com/k0shk0sh/FastHub/releases/latest) [![Slack](https://img.shields.io/badge/slack-join-e01563.svg)](http://rebrand.ly/fasthub) From e8aa1a000ce60412d9f3a72b8abbdaf99af4d5a1 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 09:07:29 +0100 Subject: [PATCH 29/59] add bitrise status --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c121ac7..3083fcff 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ #### FastHub is currently under a huge refactoring, please make sure to submit an issue only if necessary. ##### You could follow the development on V5 in this [PR](https://github.com/k0shk0sh/FastHub/pull/2599) -[![Build Status](https://travis-ci.org/k0shk0sh/FastHub.svg?branch=master)](https://travis-ci.org/k0shk0sh/FastHub) +[![Build Status](https://app.bitrise.io/app/abd1afbd2a03e0e4/status.svg?token=txykViMUFzx1WkvjixD01A&branch=development)](https://app.bitrise.io/app/abd1afbd2a03e0e4) [![Releases](https://img.shields.io/github/release/k0shk0sh/FastHub.svg)](https://github.com/k0shk0sh/FastHub/releases/latest) [![Slack](https://img.shields.io/badge/slack-join-e01563.svg)](http://rebrand.ly/fasthub) [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) From e2ab26c4a384687d5c2715ed3748c65fed6f42a1 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 09:33:44 +0100 Subject: [PATCH 30/59] remove unsubscribe btn --- .../viewholder/NotificationsViewHolder.java | 3 --- .../all/AllNotificationsPresenter.java | 6 +---- .../unread/UnreadNotificationsPresenter.java | 6 +---- .../layout/notifications_row_item.xml | 22 +++++-------------- 4 files changed, 8 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java index 48308d94..4a637447 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/NotificationsViewHolder.java @@ -28,7 +28,6 @@ public class NotificationsViewHolder extends BaseViewHolder view.onUpdateReadState(new GroupedNotificationModel(item), position)); - ReadNotificationService.unSubscribe(v.getContext(), item.getId()); } else { if (item.getSubject() != null && item.getSubject().getUrl() != null) { if (item.isUnread() && !PrefGetter.isMarkAsReadEnabled()) { diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java index bdef53e7..c3d76aee 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java +++ b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsPresenter.java @@ -1,6 +1,7 @@ package com.fastaccess.ui.modules.notification.unread; import androidx.annotation.NonNull; + import android.view.View; import com.fastaccess.R; @@ -31,11 +32,6 @@ public class UnreadNotificationsPresenter extends BasePresenter view.onRemove(position)); - ReadNotificationService.unSubscribe(v.getContext(), item.getId()); } else { if (item.getSubject() != null && item.getSubject().getUrl() != null) { if (item.isUnread() && !PrefGetter.isMarkAsReadEnabled()) { diff --git a/app/src/main/res/layouts/row_layouts/layout/notifications_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/notifications_row_item.xml index 39621c6f..7533b339 100644 --- a/app/src/main/res/layouts/row_layouts/layout/notifications_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/notifications_row_item.xml @@ -1,6 +1,5 @@ - + tools:src="@drawable/ic_issues" /> + tools:text="When one acquires music and afterlife, one is able to capture heaven." /> + tools:visibility="visible" /> + tools:text="50 minutes ago" /> - - + android:src="@drawable/ic_done" /> From 14022bd00418e4856ecc3f8bf8be558fdaa458ff Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 09:50:59 +0100 Subject: [PATCH 31/59] remove unsubscribe btn --- .../com/fastaccess/ui/widgets/FontTextView.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/widgets/FontTextView.java b/app/src/main/java/com/fastaccess/ui/widgets/FontTextView.java index 1eecba24..fd52772d 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/FontTextView.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/FontTextView.java @@ -6,12 +6,14 @@ import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.graphics.drawable.ScaleDrawable; import android.os.Parcelable; + import androidx.annotation.ColorInt; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.appcompat.widget.AppCompatTextView; + import android.util.AttributeSet; import android.view.Gravity; @@ -59,12 +61,18 @@ public class FontTextView extends AppCompatTextView { this.selected = selected; } - @SuppressLint("SetTextI18n") public void setText(CharSequence text, BufferType type) { + @Override public void setTextCursorDrawable(@Nullable Drawable textCursorDrawable) { try { - super.setText(text, type); + super.setTextCursorDrawable(textCursorDrawable); + } catch (Exception e) { + Crashlytics.logException(e); + } + } + + @Override public void setTextCursorDrawable(int textCursorDrawable) { + try { + super.setTextCursorDrawable(textCursorDrawable); } catch (Exception e) { - setText("I tried, but your OEM just sucks because they modify the framework components and therefore causing the app to crash!" + "" + - ".\nFastHub"); Crashlytics.logException(e); } } From d422fcd074594388fb9be6b96612eabb4d454c4e Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 10:08:12 +0100 Subject: [PATCH 32/59] add pandora lib --- app/build.gradle | 2 + .../provider/rest/RestProvider.java | 2 + .../provider/rest/jsoup/JsoupProvider.java | 2 + .../layout/gists_pager_layout.xml | 51 +++++++++---------- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cf08a202..656dcd1a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -174,6 +174,8 @@ dependencies { implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.1.0' implementation 'com.airbnb.android:lottie:3.0.7' implementation 'com.firebase:firebase-jobdispatcher:0.8.2' + debugImplementation 'com.github.whataa:pandora:2.0.6' + releaseImplementation 'com.github.whataa:pandora-no-op:2.0.3' compileOnly "org.projectlombok:lombok:${lombokVersion}" diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 0f4f8e29..191d84d2 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -51,6 +51,7 @@ import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.HttpException; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; +import tech.linjiang.pandora.Pandora; /** * Created by Kosh on 08 Feb 2017, 8:37 PM @@ -79,6 +80,7 @@ public class RestProvider { client.addInterceptor(new AuthenticationInterceptor()); client.addInterceptor(new PaginationInterceptor()); client.addInterceptor(new ContentTypeInterceptor()); + client.addInterceptor(Pandora.get().getInterceptor()); okHttpClient = client.build(); } return okHttpClient; diff --git a/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java b/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java index b2bfa4e8..09f31844 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/jsoup/JsoupProvider.java @@ -11,6 +11,7 @@ import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.scalars.ScalarsConverterFactory; +import tech.linjiang.pandora.Pandora; /** * Created by Kosh on 02 Jun 2017, 12:47 PM @@ -27,6 +28,7 @@ public class JsoupProvider { client.addInterceptor(new HttpLoggingInterceptor() .setLevel(HttpLoggingInterceptor.Level.BODY)); } + client.addInterceptor(Pandora.get().getInterceptor()); client.addInterceptor(new AuthenticationInterceptor(true)); okHttpClient = client.build(); } diff --git a/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml b/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml index 38aa53d7..73961251 100644 --- a/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/gists_pager_layout.xml @@ -1,9 +1,8 @@ - @@ -20,15 +19,13 @@ android:layout_height="0dp" android:layout_weight="1"> - - + - - + android:src="@drawable/ic_pin" /> + android:src="@drawable/ic_brower" /> + android:src="@drawable/ic_star" /> - android:src="@drawable/ic_fork"/> + + app:tabTextColor="?android:textColorTertiary" /> + app:layout_behavior="@string/scroll_behavior" /> + app:fabSize="auto" /> @@ -124,9 +121,9 @@ android:name="com.fastaccess.ui.modules.editor.comment.CommentEditorFragment" android:layout_width="match_parent" android:layout_height="wrap_content" - tools:layout="@layout/comment_box_layout"/> + tools:layout="@layout/comment_box_layout" /> - + \ No newline at end of file From 059fbc9d7512e678e02bbe87755037b9172dadc3 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 10:16:05 +0100 Subject: [PATCH 33/59] this fixes #2810 --- .../tasks/git/GithubActionService.java | 66 ++++++++++++------- .../provider/timeline/CommentsHelper.java | 1 + 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java b/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java index 66120d2c..ba4240a5 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java @@ -5,6 +5,7 @@ import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.IntDef; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -18,6 +19,7 @@ import com.fastaccess.provider.rest.RestProvider; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import io.reactivex.disposables.CompositeDisposable; import io.reactivex.schedulers.Schedulers; @@ -37,6 +39,7 @@ public class GithubActionService extends IntentService { public static final int FORK_GIST = 8; private NotificationCompat.Builder notification; private NotificationManager notificationManager; + private CompositeDisposable disposable = new CompositeDisposable(); @IntDef({ STAR_REPO, @@ -112,99 +115,114 @@ public class GithubActionService extends IntentService { } } + @Override public void onDestroy() { + disposable.clear(); + super.onDestroy(); + } + private void forkGist(@Nullable String id, boolean isEnterprise) { if (id != null) { String msg = getString(R.string.forking, getString(R.string.gist)); - RestProvider.getGistService(isEnterprise) - .forkGist(id) - .doOnSubscribe(disposable -> showNotification(msg)) - .subscribeOn(Schedulers.io()) - .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + disposable.add( + RestProvider.getGistService(isEnterprise) + .forkGist(id) + .doOnSubscribe(disposable -> showNotification(msg)) + .subscribeOn(Schedulers.io()) + .subscribe(response -> { + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void forkRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.forking, id); - RestProvider.getRepoService(isEnterprise) - .forkRepo(login, id) - .doOnSubscribe(disposable -> showNotification(msg)) - .subscribeOn(Schedulers.io()) - .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + disposable.add( + RestProvider.getRepoService(isEnterprise) + .forkRepo(login, id) + .doOnSubscribe(disposable -> showNotification(msg)) + .subscribeOn(Schedulers.io()) + .subscribe(response -> { + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void starGist(@Nullable String id, boolean isEnterprise) { if (id != null) { String msg = getString(R.string.starring, getString(R.string.gist)); - RestProvider.getGistService(isEnterprise) + disposable.add(RestProvider.getGistService(isEnterprise) .starGist(id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void starRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.starring, id); - RestProvider.getRepoService(isEnterprise) + disposable.add(RestProvider.getRepoService(isEnterprise) .starRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void unStarGist(@Nullable String id, boolean isEnterprise) { if (id != null) { String msg = getString(R.string.un_starring, getString(R.string.gist)); - RestProvider.getGistService(isEnterprise) + disposable.add(RestProvider.getGistService(isEnterprise) .unStarGist(id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void unStarRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.un_starring, id); - RestProvider.getRepoService(isEnterprise) + disposable.add(RestProvider.getRepoService(isEnterprise) .unstarRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void unWatchRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.un_watching, id); - RestProvider.getRepoService(isEnterprise) + disposable.add(RestProvider.getRepoService(isEnterprise) .unwatchRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } private void watchRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.watching, id); - RestProvider.getRepoService(isEnterprise) + disposable.add(RestProvider.getRepoService(isEnterprise) .watchRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)) + ); } } diff --git a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java index 3be60d73..1dde1391 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java @@ -115,6 +115,7 @@ public class CommentsHelper { @NonNull public static ArrayList getUsers(@NonNull List comments) { return Stream.of(comments) + .filter(comment -> comment.getUser() != null) .map(comment -> comment.getUser().getLogin()) .distinct() .collect(Collectors.toCollection(ArrayList::new)); From 2c47203a05ddfdd06d63d3fe23e2d6322998a3ac Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 10:23:47 +0100 Subject: [PATCH 34/59] allow creation of private gist --- .../ui/modules/gists/create/CreateGistActivity.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/modules/gists/create/CreateGistActivity.java b/app/src/main/java/com/fastaccess/ui/modules/gists/create/CreateGistActivity.java index 9fc72732..08158e69 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/gists/create/CreateGistActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/gists/create/CreateGistActivity.java @@ -69,10 +69,6 @@ public class CreateGistActivity extends BaseActivity Date: Thu, 26 Dec 2019 10:37:39 +0100 Subject: [PATCH 35/59] this fixes #2594 --- .../modules/repos/issues/issue/details/IssuePagerActivity.java | 2 +- .../pull_request/details/PullRequestPagerActivity.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java index 7bad8224..9a9b5be5 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java @@ -426,7 +426,7 @@ public class IssuePagerActivity extends BaseActivity Date: Thu, 26 Dec 2019 10:40:52 +0100 Subject: [PATCH 36/59] this fixes #2533 --- .../fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt | 6 +++++- app/src/main/res/menu/drawer_menu.xml | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt index 1222e91b..42ae7934 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/main/drawer/MainDrawerFragment.kt @@ -19,6 +19,8 @@ import com.fastaccess.ui.modules.main.donation.CheckPurchaseActivity import com.fastaccess.ui.modules.main.playstore.PlayStoreWarningActivity import com.fastaccess.ui.modules.notification.NotificationActivity import com.fastaccess.ui.modules.pinned.PinnedReposActivity +import com.fastaccess.ui.modules.repos.RepoPagerActivity +import com.fastaccess.ui.modules.repos.RepoPagerMvp import com.fastaccess.ui.modules.repos.issues.create.CreateIssueActivity import com.fastaccess.ui.modules.trending.TrendingActivity import com.fastaccess.ui.modules.user.UserPagerActivity @@ -65,7 +67,9 @@ class MainDrawerFragment : BaseFragment activity.onOpenOrgsDialog() item.itemId == R.id.notifications -> activity.startActivity(Intent(activity, NotificationActivity::class.java)) item.itemId == R.id.trending -> activity.startActivity(Intent(activity, TrendingActivity::class.java)) - item.itemId == R.id.reportBug -> activity.startActivity(CreateIssueActivity.startForResult(activity)) + item.itemId == R.id.openFatHub -> activity.startActivity( + RepoPagerActivity.createIntent(activity, "FastHub", "k0shk0sh", RepoPagerMvp.ISSUES) + ) item.itemId == R.id.faq -> activity.startActivity(Intent(activity, PlayStoreWarningActivity::class.java)) item.itemId == R.id.restorePurchase -> activity.startActivity(Intent(activity, CheckPurchaseActivity::class.java)) } diff --git a/app/src/main/res/menu/drawer_menu.xml b/app/src/main/res/menu/drawer_menu.xml index de6763d8..f84513a0 100644 --- a/app/src/main/res/menu/drawer_menu.xml +++ b/app/src/main/res/menu/drawer_menu.xml @@ -52,9 +52,9 @@ android:id="@+id/group_three" android:checkableBehavior="none"> + android:id="@+id/openFatHub" + android:icon="@drawable/ic_fasthub_mascot" + android:title="@string/app_name"/> Date: Thu, 26 Dec 2019 11:23:18 +0100 Subject: [PATCH 37/59] fix github status check --- .../data/dao/GitHubStatusModel.java | 52 ------------------- .../fastaccess/data/dao/GitHubStatusModel.kt | 15 ++++++ .../fastaccess/data/service/ContentService.kt | 2 +- .../provider/rest/RestProvider.java | 10 ++-- .../ui/base/mvp/presenter/BasePresenter.java | 22 +++++--- 5 files changed, 35 insertions(+), 66 deletions(-) delete mode 100644 app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.java create mode 100644 app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.kt diff --git a/app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.java b/app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.java deleted file mode 100644 index e8eaed80..00000000 --- a/app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.fastaccess.data.dao; - -import android.os.Parcel; -import android.os.Parcelable; - -import java.util.Date; - -/** - * Created by Hashemsergani on 18.10.17. - */ - -public class GitHubStatusModel implements Parcelable { - - private String status; - private String body; - private Date createdOn; - - public String getStatus() { return status;} - - public void setStatus(String status) { this.status = status;} - - public String getBody() { return body;} - - public void setBody(String body) { this.body = body;} - - public Date getCreatedOn() { return createdOn;} - - public void setCreatedOn(Date createdOn) { this.createdOn = createdOn;} - - @Override public int describeContents() { return 0; } - - @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeString(this.status); - dest.writeString(this.body); - dest.writeLong(this.createdOn != null ? this.createdOn.getTime() : -1); - } - - public GitHubStatusModel() {} - - protected GitHubStatusModel(Parcel in) { - this.status = in.readString(); - this.body = in.readString(); - long tmpCreatedOn = in.readLong(); - this.createdOn = tmpCreatedOn == -1 ? null : new Date(tmpCreatedOn); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override public GitHubStatusModel createFromParcel(Parcel source) {return new GitHubStatusModel(source);} - - @Override public GitHubStatusModel[] newArray(int size) {return new GitHubStatusModel[size];} - }; -} diff --git a/app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.kt b/app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.kt new file mode 100644 index 00000000..febb076a --- /dev/null +++ b/app/src/main/java/com/fastaccess/data/dao/GitHubStatusModel.kt @@ -0,0 +1,15 @@ +package com.fastaccess.data.dao + +import com.google.gson.annotations.SerializedName + +/** + * Created by Hashemsergani on 18.10.17. + */ +data class GitHubStatusModel( + @SerializedName("status") var status: GithubStatus? = null +) + +data class GithubStatus( + @SerializedName("description") var description: String? = null, + @SerializedName("indicator") var indicator: String? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/data/service/ContentService.kt b/app/src/main/java/com/fastaccess/data/service/ContentService.kt index 5f686406..2348e9e5 100644 --- a/app/src/main/java/com/fastaccess/data/service/ContentService.kt +++ b/app/src/main/java/com/fastaccess/data/service/ContentService.kt @@ -25,6 +25,6 @@ interface ContentService { @Query("branch") branch: String, @Body body: CommitRequestModel): Observable - @GET("api/last-message.json") + @GET("api/v2/status.json") fun checkStatus(): Observable } \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 191d84d2..a3e6bd66 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -4,15 +4,9 @@ import android.app.DownloadManager; import android.content.Context; import android.net.Uri; import android.os.Environment; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import android.text.TextUtils; -import android.widget.Toast; import com.crashlytics.android.Crashlytics; -import com.fastaccess.App; import com.fastaccess.BuildConfig; import com.fastaccess.R; import com.fastaccess.data.dao.GitHubErrorResponse; @@ -44,6 +38,8 @@ import com.google.gson.GsonBuilder; import java.io.File; import java.lang.reflect.Modifier; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import io.reactivex.Observable; import okhttp3.OkHttpClient; import okhttp3.ResponseBody; @@ -210,7 +206,7 @@ public class RestProvider { @NonNull public static Observable gitHubStatus() { return new Retrofit.Builder() - .baseUrl("https://status.github.com/") + .baseUrl("https://kctbh9vrtdwd.statuspage.io/") .client(provideOkHttpClient()) .addConverterFactory(new GithubResponseConverter(gson)) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) diff --git a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java index 41edf14a..bce70d9d 100644 --- a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java +++ b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java @@ -1,6 +1,7 @@ package com.fastaccess.ui.base.mvp.presenter; import android.os.Bundle; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; @@ -8,6 +9,10 @@ import androidx.annotation.StringRes; import com.evernote.android.state.StateSaver; import com.fastaccess.R; import com.fastaccess.data.dao.GitHubErrorResponse; +import com.fastaccess.data.dao.GithubStatus; +import com.fastaccess.helper.InputHelper; +import com.fastaccess.helper.Logger; +import com.fastaccess.helper.ObjectsCompat; import com.fastaccess.helper.RxHelper; import com.fastaccess.provider.rest.RestProvider; import com.fastaccess.ui.base.mvp.BaseMvp; @@ -116,12 +121,17 @@ public class BasePresenter extends TiPresenter impl } public void onCheckGitHubStatus() { -// manageObservable(RestProvider.gitHubStatus() -// .doOnNext(gitHubStatusModel -> { -// if (!"good".equalsIgnoreCase(gitHubStatusModel.getStatus())) { -// sendToView(v -> v.showErrorMessage("Github Status:\n" + gitHubStatusModel.getBody())); -// } -// })); + manageObservable(RestProvider.gitHubStatus() + .filter(ObjectsCompat::nonNull) + .doOnNext(gitHubStatusModel -> { + Logger.e(gitHubStatusModel); + GithubStatus status = gitHubStatusModel.getStatus(); + String description = status != null ? status.getDescription() : null; + String indicatorStatus = status != null ? status.getIndicator() : null; + if (!InputHelper.isEmpty(description) && !"none".equalsIgnoreCase(indicatorStatus)) { + sendToView(v -> v.showErrorMessage("Github Status:(" + indicatorStatus + ")\n" + description)); + } + })); } public boolean isEnterprise() { From be19827804bc813a2ed52f56e36d710f66d1a143 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Thu, 26 Dec 2019 11:38:27 +0100 Subject: [PATCH 38/59] remove shrug --- .../com/fastaccess/ui/base/BaseDialogFragment.java | 11 +++++++---- .../editor/popup/EditorLinkImageDialogFragment.java | 4 +++- .../extras/assignees/AssigneesDialogFragment.java | 4 +++- .../repos/extras/labels/LabelsDialogFragment.java | 4 +++- .../labels/create/CreateLabelDialogFragment.java | 4 +++- .../create/CreateMilestoneDialogFragment.java | 4 +++- .../milestone/create/MilestoneDialogFragment.java | 4 +++- .../merge/MergePullRequestDialogFragment.java | 4 +++- .../java/com/fastaccess/ui/widgets/StateLayout.java | 2 +- .../fastaccess/ui/widgets/dialog/ListDialogView.java | 4 +++- 10 files changed, 32 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java b/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java index 6ef8f3b0..e0ddd490 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseDialogFragment.java @@ -16,6 +16,7 @@ import android.view.View; import android.view.ViewGroup; import com.evernote.android.state.StateSaver; +import com.fastaccess.App; import com.fastaccess.R; import com.fastaccess.helper.AnimHelper; import com.fastaccess.helper.AppHelper; @@ -26,6 +27,8 @@ import com.fastaccess.ui.widgets.dialog.ProgressDialogFragment; import net.grandcentrix.thirtyinch.TiDialogFragment; +import org.jetbrains.annotations.NotNull; + import butterknife.ButterKnife; import butterknife.Unbinder; @@ -44,7 +47,7 @@ public abstract class BaseDialogFragment AnimHelper.revealDialog(dialog, - getResources().getInteger(android.R.integer.config_longAnimTime))); + App.getInstance().getResources().getInteger(android.R.integer.config_longAnimTime))); } return dialog; } - @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + @Override public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); onFragmentCreated(view, savedInstanceState); } diff --git a/app/src/main/java/com/fastaccess/ui/modules/editor/popup/EditorLinkImageDialogFragment.java b/app/src/main/java/com/fastaccess/ui/modules/editor/popup/EditorLinkImageDialogFragment.java index 0f48eaaf..92340197 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/editor/popup/EditorLinkImageDialogFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/editor/popup/EditorLinkImageDialogFragment.java @@ -19,6 +19,8 @@ import com.fastaccess.helper.InputHelper; import com.fastaccess.ui.base.BaseDialogFragment; import com.fastaccess.ui.widgets.FontButton; +import org.jetbrains.annotations.NotNull; + import java.io.File; import butterknife.BindView; @@ -48,7 +50,7 @@ public class EditorLinkImageDialogFragment extends BaseDialogFragment extends BaseDialogFragment imp fastScroller.attachRecyclerView(recycler); } - @Override public void onAttach(Context context) { + @Override public void onAttach(@NotNull Context context) { super.onAttach(context); if (getParentFragment() != null && getParentFragment() instanceof onSimpleItemSelection) { onSimpleItemSelection = (onSimpleItemSelection) getParentFragment(); From 463e19c4bf75e01f5af282df1f74b1ed2293bd74 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 20:22:42 +0100 Subject: [PATCH 39/59] update dependencies, added fasthub debug firebase project. - fixed image getter size --- app/build.gradle | 32 ++++++------------ app/src/debug/google-services.json | 32 +++++++----------- .../provider/rest/RestProvider.java | 1 - .../timeline/handler/DrawableHandler.java | 1 - .../timeline/handler/PreTagHandler.java | 2 +- .../handler/drawable/DrawableGetter.java | 4 +-- .../handler/drawable/GlideDrawableTarget.java | 5 ++- .../handler/drawable/UrlDrawable.java | 10 +++++- .../modules/parser/LinksParserActivity.java | 4 +-- .../ui/modules/repos/wiki/WikiPresenter.kt | 33 ++++++++----------- .../fragment/TrendingFragmentPresenter.kt | 32 ++++++++---------- build.gradle | 5 ++- 12 files changed, 67 insertions(+), 94 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 656dcd1a..29c53768 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,10 +8,10 @@ apply plugin: 'io.fabric' buildProperties { notThere { - file rootProject.file('debug_gradle.properties') + using rootProject.file('debug_gradle.properties') } secrets { - file rootProject.file('release_gradle.properties') + using rootProject.file('release_gradle.properties') } } @@ -29,8 +29,8 @@ android { applicationId "com.fastaccess.github" minSdkVersion 21 targetSdkVersion 29 - versionCode 469 - versionName "4.6.9" + versionCode 470 + versionName "4.7.0" buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string buildConfigString "IMGUR_CLIENT_ID", (buildProperties.secrets['imgur_client_id'] | buildProperties.notThere['imgur_client_id']).string @@ -38,7 +38,6 @@ android { buildConfigField "String", "REST_URL", '"https://api.github.com/"' buildConfigField "String", "IMGUR_URL", '"https://api.imgur.com/3/"' multiDexEnabled true - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { includeCompileClasspath true @@ -54,14 +53,10 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { - if (!rootProject.file('gradle.properties').exists()) { - signingConfig signingConfigs.signing - } applicationIdSuffix ".debug" versionNameSuffix "-debug" ext.alwaysUpdateBuildId = false } - } sourceSets { @@ -99,14 +94,6 @@ android { jumboMode true javaMaxHeapSize "4g" } - - testOptions { - unitTests.returnDefaultValues = true - } -} - -kapt { - generateStubs = true } repositories { @@ -139,7 +126,7 @@ dependencies { implementation 'it.sephiroth.android.library.bottomnavigation:bottom-navigation:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.2.15' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' - implementation 'com.squareup.okhttp3:logging-interceptor:4.2.1' + implementation 'com.squareup.okhttp3:logging-interceptor:4.2.2' implementation 'com.annimon:stream:1.1.9' implementation 'com.github.GrenderG:Toasty:1.1.3' implementation 'com.github.k0shk0sh:RetainedDateTimePickers:1.0.2' @@ -156,7 +143,8 @@ dependencies { implementation "com.atlassian.commonmark:commonmark-ext-gfm-tables:${commonmark}" implementation "com.atlassian.commonmark:commonmark-ext-ins:${commonmark}" implementation "com.atlassian.commonmark:commonmark-ext-yaml-front-matter:${commonmark}" - implementation "com.google.firebase:firebase-core:17.2.1" + implementation "com.google.firebase:firebase-analytics:17.2.1" + implementation "com.google.firebase:firebase-inappmessaging:19.0.2" implementation "com.google.firebase:firebase-messaging:20.1.0" implementation "com.google.firebase:firebase-database:19.2.0" implementation "com.google.android.gms:play-services-base:17.1.0" @@ -170,10 +158,11 @@ dependencies { implementation "petrov.kristiyan:colorpicker-library:1.1.4" implementation 'com.apollographql.apollo:apollo-rx2-support:1.2.2' implementation("com.apollographql.apollo:apollo-runtime:1.2.2") - implementation 'com.jaredrummler:android-device-names:1.1.5' + implementation 'com.jaredrummler:android-device-names:1.1.9' implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.1.0' - implementation 'com.airbnb.android:lottie:3.0.7' + implementation 'com.airbnb.android:lottie:3.3.1' implementation 'com.firebase:firebase-jobdispatcher:0.8.2' + implementation 'com.google.guava:guava:27.0.1-android' /*to be removed*/ debugImplementation 'com.github.whataa:pandora:2.0.6' releaseImplementation 'com.github.whataa:pandora-no-op:2.0.3' @@ -185,7 +174,6 @@ dependencies { kapt 'com.github.matthiasrobbers:shortbread-compiler:1.0.1' kapt "io.requery:requery-processor:${requery}" kapt "com.github.bumptech.glide:compiler:$glideVersion" - } apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/debug/google-services.json b/app/src/debug/google-services.json index 7f42a1cf..4bf588cd 100644 --- a/app/src/debug/google-services.json +++ b/app/src/debug/google-services.json @@ -1,61 +1,53 @@ { "project_info": { - "project_id": "this-is-a-sample", - "project_number": "999999999999", - "name": "FastHub Sample", - "firebase_url": "https://this-is-a-sample-do-not-use.firebaseio.com", - "storage_bucket": "this-is-a-sample-do-not-use.storage.firebase.com" + "project_number": "535903042804", + "firebase_url": "https://fasthub-dev-a1309.firebaseio.com", + "project_id": "fasthub-dev-a1309", + "storage_bucket": "fasthub-dev-a1309.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:999999999999:android:0000000000000000", + "mobilesdk_app_id": "1:535903042804:android:516309017e0298c938b2a1", "android_client_info": { "package_name": "com.fastaccess.github.debug" } }, "oauth_client": [ { - "client_id": "this-is-a-sample-do-not-use.apps.googleusercontent.com", + "client_id": "535903042804-ubkic52fte5tpoe62q6k1m4h0pbcjp9c.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.fastaccess.github.debug", - "certificate_hash": "0000000000000000000000000000000000000000" + "certificate_hash": "42b1ddc5872bd156a90e2aebc94ee149a30f0ef3" } }, { - "client_id": "this-is-a-sample-do-not-use.apps.googleusercontent.com", + "client_id": "535903042804-asaj9vcag2pbb0c170p5ll53ovpab02q.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.fastaccess.github.debug", - "certificate_hash": "0000000000000000000000000000000000000000" + "certificate_hash": "c12fc4581dd11d64717548d8480ba537fc835893" } }, { - "client_id": "this-is-a-sample-do-not-use.apps.googleusercontent.com", + "client_id": "535903042804-14481m7poceb7ojv5roddqm28pg4ch5n.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "000000000000000000000000000000000000000" + "current_key": "AIzaSyBbRQtQN1UxFRgeSSfjZwQ5TRulc2lZUzI" } ], "services": { - "analytics_service": { - "status": 1 - }, "appinvite_service": { - "status": 2, "other_platform_oauth_client": [ { - "client_id": "this-is-a-sample-do-not-use.apps.googleusercontent.com", + "client_id": "535903042804-14481m7poceb7ojv5roddqm28pg4ch5n.apps.googleusercontent.com", "client_type": 3 } ] - }, - "ads_service": { - "status": 2 } } } diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index a3e6bd66..94ae9800 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -120,7 +120,6 @@ public class RestProvider { public static int getErrorCode(Throwable throwable) { if (throwable instanceof HttpException) { return ((HttpException) throwable).code(); - } return -1; } diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java index fe6517db..d0b3abe5 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java @@ -41,7 +41,6 @@ import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE; builder.append("\n"); DrawableGetter imageGetter = new DrawableGetter(textView, width); builder.setSpan(new ImageSpan(imageGetter.getDrawable(src)), start, builder.length(), SPAN_EXCLUSIVE_EXCLUSIVE); - builder.setSpan(new CenterSpan(), start, builder.length(), SPAN_EXCLUSIVE_EXCLUSIVE); builder.append("\n"); } else { builder.append(SpannableBuilder.builder().clickable("Image", v -> SchemeParser.launchUri(v.getContext(), src))); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java index 0e7be88b..9010e046 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/PreTagHandler.java @@ -71,7 +71,7 @@ import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE; this.appendNewLine(builder); this.appendNewLine(builder); } else { - StringBuffer text = node.getText(); + CharSequence text = node.getText(); builder.append(" "); builder.append(replace(text.toString())); builder.append(" "); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java index 93b1989b..7dc25666 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java @@ -40,8 +40,8 @@ public class DrawableGetter implements Html.ImageGetter, Drawable.Callback { final RequestBuilder load = Glide.with(context) .load(url) .placeholder(ContextCompat.getDrawable(context, R.drawable.ic_image)) - .dontAnimate() - .override(width, width / 2); + .dontAnimate(); + final GlideDrawableTarget target = new GlideDrawableTarget(urlDrawable, container, width); load.into(target); cachedTargets.add(target); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java index 30f6b687..1f7d3125 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/GlideDrawableTarget.java @@ -37,9 +37,8 @@ class GlideDrawableTarget extends SimpleTarget { width = (float) (resource.getIntrinsicWidth() / downScale / 1.3); height = (float) (resource.getIntrinsicHeight() / downScale / 1.3); } else { - float multiplier = (float) this.width / resource.getIntrinsicWidth(); - width = (float) resource.getIntrinsicWidth() * multiplier; - height = (float) resource.getIntrinsicHeight() * multiplier; + width = (float) resource.getIntrinsicWidth(); + height = (float) resource.getIntrinsicHeight(); } Rect rect = new Rect(0, 0, Math.round(width), Math.round(height)); resource.setBounds(rect); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java index 938dc033..a76f28c3 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/UrlDrawable.java @@ -1,11 +1,14 @@ package com.fastaccess.provider.timeline.handler.drawable; +import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; + import androidx.annotation.NonNull; import com.bumptech.glide.load.resource.gif.GifDrawable; +import com.crashlytics.android.Crashlytics; class UrlDrawable extends BitmapDrawable implements Drawable.Callback { private Drawable drawable; @@ -14,7 +17,12 @@ class UrlDrawable extends BitmapDrawable implements Drawable.Callback { @Override public void draw(Canvas canvas) { if (drawable != null) { - drawable.draw(canvas); + try { + drawable.draw(canvas); + } catch (Exception e) { + Crashlytics.logException(e); + e.printStackTrace(); + } if (drawable instanceof GifDrawable) { if (!((GifDrawable) drawable).isRunning()) { ((GifDrawable) drawable).start(); diff --git a/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java b/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java index 8fc1143c..bac506f0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/parser/LinksParserActivity.java @@ -15,8 +15,6 @@ import com.fastaccess.helper.InputHelper; import com.fastaccess.provider.scheme.SchemeParser; import com.fastaccess.ui.modules.login.chooser.LoginChooserActivity; -import org.apache.tools.ant.ExitException; - /** * Created by Kosh on 09 Dec 2016, 12:31 PM */ @@ -51,7 +49,7 @@ public class LinksParserActivity extends Activity { Uri uri = Uri.parse(sharedText); onUriReceived(uri); } - } catch (ExitException ignored) {} + } catch (Exception ignored) {} } else if (intent.getAction().equals(Intent.ACTION_VIEW)) { if (intent.getData() != null) { onUriReceived(intent.getData()); diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt index b26141c5..12402925 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiPresenter.kt @@ -43,26 +43,21 @@ class WikiPresenter : BasePresenter(), WikiMvp.Presenter { } override fun onSidebarClicked(sidebar: WikiSideBarModel) { - if (BuildConfig.DEBUG) { - firebaseWikiConfigModel = FirebaseWikiConfigModel() - callApi(sidebar) + if (firebaseWikiConfigModel == null) { + manageDisposable( + RxHelper.getSingle(RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_wiki"))) + .doOnSubscribe { sendToView { it.showProgress(0) } } + .map { + firebaseWikiConfigModel = FirebaseWikiConfigModel.map(it.value as? HashMap) + return@map firebaseWikiConfigModel + } + .subscribe( + { callApi(sidebar) }, + { callApi(sidebar) } + ) + ) } else { - if (firebaseWikiConfigModel == null) { - manageDisposable( - RxHelper.getSingle(RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_wiki"))) - .doOnSubscribe { sendToView { it.showProgress(0) } } - .map { - firebaseWikiConfigModel = FirebaseWikiConfigModel.map(it.value as? HashMap) - return@map firebaseWikiConfigModel - } - .subscribe( - { callApi(sidebar) }, - { callApi(sidebar) } - ) - ) - } else { - callApi(sidebar) - } + callApi(sidebar) } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt index 29780f94..1f6f5954 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/trending/fragment/TrendingFragmentPresenter.kt @@ -42,25 +42,21 @@ class TrendingFragmentPresenter : BasePresenter(), Tre disposel?.let { if (!it.isDisposed) it.dispose() } val config = firebaseTrendingConfigModel - if (com.fastaccess.BuildConfig.DEBUG) { - callApi(lang, since) - } else { - if (config == null) { - manageDisposable(RxHelper.getSingle(RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_trending"))) - .doOnSubscribe { sendToView { it.showProgress(0) } } - .map { - firebaseTrendingConfigModel = FirebaseTrendingConfigModel - .map(it.value as? HashMap) - return@map firebaseTrendingConfigModel - } - .subscribe( - { callApi(lang, since) }, - { callApi(lang, since) } - ) + if (config == null) { + manageDisposable(RxHelper.getSingle(RxFirebaseDatabase.data(FirebaseDatabase.getInstance().reference.child("github_trending"))) + .doOnSubscribe { sendToView { it.showProgress(0) } } + .map { + firebaseTrendingConfigModel = FirebaseTrendingConfigModel + .map(it.value as? HashMap) + return@map firebaseTrendingConfigModel + } + .subscribe( + { callApi(lang, since) }, + { callApi(lang, since) } ) - } else { - callApi(lang, since) - } + ) + } else { + callApi(lang, since) } } diff --git a/build.gradle b/build.gradle index c7749ffd..31b23c6c 100644 --- a/build.gradle +++ b/build.gradle @@ -3,11 +3,10 @@ buildscript { ext { butterKnifeVersion = '10.2.1' state_version = '1.4.1' - lombokVersion = '1.16.20' + lombokVersion = '1.18.10' supportVersion = "27.1.0" - gms = "12.0.0" thirtyinchVersion = '0.9.6' - retrofit = '2.3.0' + retrofit = '2.7.0' junitVersion = '4.12' mockitoVersion = '1.10.19' assertjVersion = '2.5.0' From dc537bc294f6460a05ea3e57b1e793b474fb59be Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 21:05:16 +0100 Subject: [PATCH 40/59] add file history shortcut to file menu --- app/src/debug/google-services.json | 16 ---------------- app/src/main/AndroidManifest.xml | 4 ---- .../ui/modules/main/MainActivity.java | 16 ++++++++++++++++ .../repos/code/files/RepoFilesFragment.java | 6 +++++- app/src/main/res/menu/download_share_menu.xml | 18 ++++++++++++------ app/src/main/res/values/strings.xml | 1 + 6 files changed, 34 insertions(+), 27 deletions(-) diff --git a/app/src/debug/google-services.json b/app/src/debug/google-services.json index 4bf588cd..0ad69152 100644 --- a/app/src/debug/google-services.json +++ b/app/src/debug/google-services.json @@ -14,22 +14,6 @@ } }, "oauth_client": [ - { - "client_id": "535903042804-ubkic52fte5tpoe62q6k1m4h0pbcjp9c.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "com.fastaccess.github.debug", - "certificate_hash": "42b1ddc5872bd156a90e2aebc94ee149a30f0ef3" - } - }, - { - "client_id": "535903042804-asaj9vcag2pbb0c170p5ll53ovpab02q.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "com.fastaccess.github.debug", - "certificate_hash": "c12fc4581dd11d64717548d8480ba537fc835893" - } - }, { "client_id": "535903042804-14481m7poceb7ojv5roddqm28pg4ch5n.apps.googleusercontent.com", "client_type": 3 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b0f438f5..796c4f31 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -317,10 +317,6 @@ - - diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java b/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java index 9735bbbc..544e97e9 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java @@ -3,11 +3,18 @@ package com.fastaccess.ui.modules.main; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; + +import com.fastaccess.BuildConfig; +import com.fastaccess.helper.Logger; +import com.google.android.gms.tasks.OnSuccessListener; import com.google.android.material.floatingactionbutton.FloatingActionButton; + import androidx.fragment.app.FragmentManager; import androidx.core.view.GravityCompat; + import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; @@ -29,6 +36,8 @@ import com.fastaccess.ui.modules.notification.NotificationActivity; import com.fastaccess.ui.modules.search.SearchActivity; import com.fastaccess.ui.modules.settings.SlackBottomSheetDialog; import com.fastaccess.ui.modules.user.UserPagerActivity; +import com.google.firebase.iid.FirebaseInstanceId; +import com.google.firebase.iid.InstanceIdResult; import butterknife.BindView; import butterknife.OnClick; @@ -72,6 +81,13 @@ public class MainActivity extends BaseActivity impl new SlackBottomSheetDialog().show(getSupportFragmentManager(), SlackBottomSheetDialog.TAG); } } + + if (BuildConfig.DEBUG) { + FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(o -> { + Logger.e(o.getId(), o.getToken()); + }); + } + getPresenter().setEnterprise(PrefGetter.isEnterprise()); selectHome(false); hideShowShadow(navType == MainMvp.FEEDS); diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesFragment.java index d3c072aa..3d373f27 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesFragment.java @@ -115,6 +115,7 @@ public class RepoFilesFragment extends BaseFragment { switch (item1.getItemId()) { case R.id.share: @@ -147,6 +148,9 @@ public class RepoFilesFragment extends BaseFragment + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2c0b7141..6e297161 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -604,4 +604,5 @@ No file changes Send feedback Unfortunately we cannot access private repos wiki + File History From 2986098b0284fce23c1328fed503b345c70c43df Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 21:37:59 +0100 Subject: [PATCH 41/59] fix reactions api --- .../java/com/fastaccess/data/dao/types/ReactionTypes.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java b/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java index 7b075c26..df19ec64 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java @@ -14,8 +14,8 @@ public enum ReactionTypes { HEART("heart", R.id.heart, R.id.heartReaction), HOORAY("hooray", R.id.hurray, R.id.hurrayReaction), - PLUS_ONE("+1", R.id.thumbsUp, R.id.thumbsUpReaction), - MINUS_ONE("-1", R.id.thumbsDown, R.id.thumbsDownReaction), + PLUS_ONE("thumbs_up", R.id.thumbsUp, R.id.thumbsUpReaction), + MINUS_ONE("thumbs_down", R.id.thumbsDown, R.id.thumbsDownReaction), CONFUSED("confused", R.id.sad, R.id.sadReaction), LAUGH("laugh", R.id.laugh, R.id.laughReaction); From cbbcbdc92d861e7d317fd592a88dca2aa7a4a1a2 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:03:23 +0100 Subject: [PATCH 42/59] add rocket and eyes reaction --- .../fastaccess/data/dao/ReactionsModel.java | 59 +++---------- .../data/dao/types/ReactionTypes.java | 4 +- .../provider/timeline/CommentsHelper.java | 86 ++++++++++--------- .../viewholder/IssueDetailsViewHolder.java | 14 ++- .../viewholder/ReviewCommentsViewHolder.java | 14 ++- .../TimelineCommentsViewHolder.java | 14 ++- .../layout/comments_dropdown_layout.xml | 46 +++++++--- .../row_layouts/layout/comments_row_item.xml | 23 +++++ .../layout/issue_detail_header_row_item.xml | 82 +++++++++++------- .../layout/review_comments_row_item.xml | 69 ++++++++++----- 10 files changed, 258 insertions(+), 153 deletions(-) diff --git a/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java b/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java index 16edfeca..ffcddd07 100644 --- a/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/ReactionsModel.java @@ -2,11 +2,14 @@ package com.fastaccess.data.dao; import android.os.Parcel; import android.os.Parcelable; + import androidx.annotation.Nullable; import com.fastaccess.data.dao.model.User; import com.google.gson.annotations.SerializedName; +import org.jetbrains.annotations.NotNull; + import java.util.ArrayList; import java.util.List; @@ -24,12 +27,14 @@ import github.PullRequestTimelineQuery; public long id; public String url; public int total_count; - @SerializedName("+1") public int plusOne; - @SerializedName("-1") public int minusOne; + @SerializedName(value = "+1", alternate = "thumbs_up") public int plusOne; + @SerializedName(value = "-1", alternate = "thumbs_down") public int minusOne; public int laugh; public int hooray; public int confused; public int heart; + public int rocket; + public int eyes; public String content; public User user; public boolean viewerHasReacted; @@ -37,7 +42,7 @@ import github.PullRequestTimelineQuery; public ReactionsModel() {} - @Override public String toString() { + @NotNull @Override public String toString() { return "ReactionsModel{" + "id=" + id + ", url='" + url + '\'' + @@ -48,6 +53,8 @@ import github.PullRequestTimelineQuery; ", hooray=" + hooray + ", confused=" + confused + ", heart=" + heart + + ", rocket=" + rocket + + ", eyes=" + eyes + '}'; } @@ -63,6 +70,8 @@ import github.PullRequestTimelineQuery; dest.writeInt(this.hooray); dest.writeInt(this.confused); dest.writeInt(this.heart); + dest.writeInt(this.rocket); + dest.writeInt(this.eyes); dest.writeString(this.content); dest.writeParcelable(this.user, flags); dest.writeByte(this.isCallingApi ? (byte) 1 : (byte) 0); @@ -78,6 +87,8 @@ import github.PullRequestTimelineQuery; this.hooray = in.readInt(); this.confused = in.readInt(); this.heart = in.readInt(); + this.rocket = in.readInt(); + this.eyes = in.readInt(); this.content = in.readString(); this.user = in.readParcelable(User.class.getClassLoader()); this.isCallingApi = in.readByte() != 0; @@ -88,46 +99,4 @@ import github.PullRequestTimelineQuery; @Override public ReactionsModel[] newArray(int size) {return new ReactionsModel[size];} }; - - @NonNull public static List getReactionGroup(@Nullable List reactions) { - List models = new ArrayList<>(); - if (reactions != null && !reactions.isEmpty()) { - for (PullRequestTimelineQuery.ReactionGroup reaction : reactions) { - ReactionsModel model = new ReactionsModel(); - model.setContent(reaction.content().name()); - model.setViewerHasReacted(reaction.viewerHasReacted()); - model.setTotal_count(reaction.users().totalCount()); - models.add(model); - } - } - return models; - } - - @NonNull public static List getReaction(@Nullable List reactions) { - List models = new ArrayList<>(); - if (reactions != null && !reactions.isEmpty()) { - for (PullRequestTimelineQuery.ReactionGroup1 reaction : reactions) { - ReactionsModel model = new ReactionsModel(); - model.setContent(reaction.content().name()); - model.setViewerHasReacted(reaction.viewerHasReacted()); - model.setTotal_count(reaction.users().totalCount()); - models.add(model); - } - } - return models; - } - - @NonNull public static List getReaction2(@Nullable List reactions) { - List models = new ArrayList<>(); - if (reactions != null && !reactions.isEmpty()) { - for (PullRequestTimelineQuery.ReactionGroup2 reaction : reactions) { - ReactionsModel model = new ReactionsModel(); - model.setContent(reaction.content().name()); - model.setViewerHasReacted(reaction.viewerHasReacted()); - model.setTotal_count(reaction.users().totalCount()); - models.add(model); - } - } - return models; - } } diff --git a/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java b/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java index df19ec64..2f21fd4b 100644 --- a/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java +++ b/app/src/main/java/com/fastaccess/data/dao/types/ReactionTypes.java @@ -17,7 +17,9 @@ public enum ReactionTypes { PLUS_ONE("thumbs_up", R.id.thumbsUp, R.id.thumbsUpReaction), MINUS_ONE("thumbs_down", R.id.thumbsDown, R.id.thumbsDownReaction), CONFUSED("confused", R.id.sad, R.id.sadReaction), - LAUGH("laugh", R.id.laugh, R.id.laughReaction); + LAUGH("laugh", R.id.laugh, R.id.laughReaction), + ROCKET("rocket", R.id.rocket, R.id.rocketReaction), + EYES("eyes", R.id.eyes, R.id.eyeReaction); private String content; private int vId; diff --git a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java index 1dde1391..727f3f49 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java @@ -1,8 +1,10 @@ package com.fastaccess.provider.timeline; import android.content.Context; + import androidx.annotation.IdRes; import androidx.annotation.NonNull; + import android.view.View; import android.widget.TextView; @@ -16,6 +18,8 @@ import com.fastaccess.data.dao.types.ReactionTypes; import com.fastaccess.provider.tasks.git.ReactionService; import com.fastaccess.ui.widgets.SpannableBuilder; +import org.w3c.dom.Text; + import java.util.ArrayList; import java.util.List; @@ -31,41 +35,14 @@ public class CommentsHelper { private static final int THUMBS_DOWN = 0x1f44e; private static final int HOORAY = 0x1f389; private static final int HEART = 0x2764; + private static final int ROCKET = 0x1f680; + private static final int EYES = 0x1f440; public static boolean isOwner(@NonNull String currentLogin, @NonNull String repoOwner, @NonNull String commentUser) { return currentLogin.equalsIgnoreCase(repoOwner) || currentLogin.equalsIgnoreCase(commentUser); } - public static void handleReactions(@NonNull Context context, @NonNull String login, @NonNull String repoId, - @IdRes int id, long commentId, boolean commit, boolean isDelete, - boolean isEnterprise) { - ReactionTypes type = null; - switch (id) { - case R.id.heart: - type = ReactionTypes.HEART; - break; - case R.id.sad: - type = ReactionTypes.CONFUSED; - break; - case R.id.thumbsDown: - type = ReactionTypes.MINUS_ONE; - break; - case R.id.thumbsUp: - type = ReactionTypes.PLUS_ONE; - break; - case R.id.laugh: - type = ReactionTypes.LAUGH; - break; - case R.id.hurray: - type = ReactionTypes.HOORAY; - break; - } - if (type != null) { - ReactionService.start(context, login, repoId, commentId, type, commit, isDelete, isEnterprise); - } - } - private static String getEmojiByUnicode(int unicode) { return new String(Character.toChars(unicode)); } @@ -76,14 +53,16 @@ public class CommentsHelper { return getHeart(); case HOORAY: return getHooray(); - case PLUS_ONE: - return getThumbsUp(); case MINUS_ONE: return getThumbsDown(); case CONFUSED: return getSad(); case LAUGH: return getLaugh(); + case ROCKET: + return getRocket(); + case EYES: + return getEyes(); default: return getThumbsUp(); } @@ -113,6 +92,14 @@ public class CommentsHelper { return getEmojiByUnicode(HEART); } + public static String getRocket() { + return getEmojiByUnicode(ROCKET); + } + + public static String getEyes() { + return getEmojiByUnicode(EYES); + } + @NonNull public static ArrayList getUsers(@NonNull List comments) { return Stream.of(comments) .filter(comment -> comment.getUser() != null) @@ -129,13 +116,17 @@ public class CommentsHelper { .collect(Collectors.toCollection(ArrayList::new)); } - public static void appendEmojies(@NonNull ReactionsModel reaction, @NonNull TextView thumbsUp, - @NonNull TextView thumbsUpReaction, @NonNull TextView thumbsDown, - @NonNull TextView thumbsDownReaction, @NonNull TextView hurray, - @NonNull TextView hurrayReaction, @NonNull TextView sad, - @NonNull TextView sadReaction, @NonNull TextView laugh, - @NonNull TextView laughReaction, @NonNull TextView heart, - @NonNull TextView heartReaction, @NonNull View reactionsList) { + public static void appendEmojies( + @NonNull ReactionsModel reaction, @NonNull TextView thumbsUp, + @NonNull TextView thumbsUpReaction, @NonNull TextView thumbsDown, + @NonNull TextView thumbsDownReaction, @NonNull TextView hurray, + @NonNull TextView hurrayReaction, @NonNull TextView sad, + @NonNull TextView sadReaction, @NonNull TextView laugh, + @NonNull TextView laughReaction, @NonNull TextView heart, + @NonNull TextView heartReaction, @NonNull TextView rocket, + @NonNull TextView rocketReaction, @NonNull TextView eye, + @NonNull TextView eyeReaction, @NonNull View reactionsList + ) { SpannableBuilder spannableBuilder = SpannableBuilder.builder() .append(CommentsHelper.getThumbsUp()).append(" ") .append(String.valueOf(reaction.getPlusOne())) @@ -173,10 +164,27 @@ public class CommentsHelper { laughReaction.setVisibility(reaction.getLaugh() > 0 ? View.VISIBLE : View.GONE); spannableBuilder = SpannableBuilder.builder() .append(CommentsHelper.getHeart()).append(" ") - .append(String.valueOf(reaction.getHeart())); + .append(String.valueOf(reaction.getHeart())) + .append(" "); heart.setText(spannableBuilder); heartReaction.setText(spannableBuilder); heartReaction.setVisibility(reaction.getHeart() > 0 ? View.VISIBLE : View.GONE); + + spannableBuilder = SpannableBuilder.builder() + .append(CommentsHelper.getRocket()).append(" ") + .append(String.valueOf(reaction.getRocket())) + .append(" "); + rocket.setText(spannableBuilder); + rocketReaction.setText(spannableBuilder); + rocketReaction.setVisibility(reaction.getRocket() > 0 ? View.VISIBLE : View.GONE); + + spannableBuilder = SpannableBuilder.builder() + .append(CommentsHelper.getEyes()).append(" ") + .append(String.valueOf(reaction.getEyes())); + eye.setText(spannableBuilder); + eyeReaction.setText(spannableBuilder); + eyeReaction.setVisibility(reaction.getEyes() > 0 ? View.VISIBLE : View.GONE); + if (reaction.getPlusOne() > 0 || reaction.getMinusOne() > 0 || reaction.getLaugh() > 0 || reaction.getHooray() > 0 || reaction.getConfused() > 0 || reaction.getHeart() > 0) { diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java index 18251cc1..579b6903 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java @@ -69,6 +69,10 @@ public class IssueDetailsViewHolder extends BaseViewHolder { @BindView(R.id.hurrayReaction) FontTextView hurrayReaction; @BindView(R.id.sadReaction) FontTextView sadReaction; @BindView(R.id.heartReaction) FontTextView heartReaction; + @BindView(R.id.rocketReaction) FontTextView rocketReaction; + @BindView(R.id.eyeReaction) FontTextView eyeReaction; + @BindView(R.id.rocket) FontTextView rocket; + @BindView(R.id.eyes) FontTextView eyes; private OnToggleView onToggleView; private ReactionsCallback reactionsCallback; private ViewGroup viewGroup; @@ -187,6 +191,14 @@ public class IssueDetailsViewHolder extends BaseViewHolder { case R.id.hurrayReaction: reactionsModel.setHooray(!isReacted ? reactionsModel.getHooray() + 1 : reactionsModel.getHooray() - 1); break; + case R.id.rocket: + case R.id.rocketReaction: + reactionsModel.setRocket(!isReacted ? reactionsModel.getRocket() + 1 : reactionsModel.getRocket() - 1); + break; + case R.id.eyes: + case R.id.eyeReaction: + reactionsModel.setEyes(!isReacted ? reactionsModel.getEyes() + 1 : reactionsModel.getEyes() - 1); + break; } if (pullRequest != null) { pullRequest.setReactions(reactionsModel); @@ -254,7 +266,7 @@ public class IssueDetailsViewHolder extends BaseViewHolder { private void appendEmojies(ReactionsModel reaction) { CommentsHelper.appendEmojies(reaction, thumbsUp, thumbsUpReaction, thumbsDown, thumbsDownReaction, hooray, hurrayReaction, sad, - sadReaction, laugh, laughReaction, heart, heartReaction, reactionsList); + sadReaction, laugh, laughReaction, heart, heartReaction, rocket, rocketReaction, eyes, eyeReaction, reactionsList); } private void onToggle(boolean expanded, boolean animate) { diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java index a4859ed5..da843e10 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java @@ -56,6 +56,10 @@ public class ReviewCommentsViewHolder extends BaseViewHolder @BindView(R.id.hurrayReaction) FontTextView hurrayReaction; @BindView(R.id.sadReaction) FontTextView sadReaction; @BindView(R.id.heartReaction) FontTextView heartReaction; + @BindView(R.id.rocketReaction) FontTextView rocketReaction; + @BindView(R.id.eyeReaction) FontTextView eyeReaction; + @BindView(R.id.rocket) FontTextView rocket; + @BindView(R.id.eyes) FontTextView eyes; private OnToggleView onToggleView; private ReactionsCallback reactionsCallback; private ViewGroup viewGroup; @@ -201,6 +205,14 @@ public class ReviewCommentsViewHolder extends BaseViewHolder case R.id.hurrayReaction: reactionsModel.setHooray(!isReacted ? reactionsModel.getHooray() + 1 : reactionsModel.getHooray() - 1); break; + case R.id.rocket: + case R.id.rocketReaction: + reactionsModel.setRocket(!isReacted ? reactionsModel.getRocket() + 1 : reactionsModel.getRocket() - 1); + break; + case R.id.eyes: + case R.id.eyeReaction: + reactionsModel.setEyes(!isReacted ? reactionsModel.getEyes() + 1 : reactionsModel.getEyes() - 1); + break; } comment.setReactions(reactionsModel); appendEmojies(reactionsModel); @@ -210,7 +222,7 @@ public class ReviewCommentsViewHolder extends BaseViewHolder private void appendEmojies(ReactionsModel reaction) { CommentsHelper.appendEmojies(reaction, thumbsUp, thumbsUpReaction, thumbsDown, thumbsDownReaction, hurray, hurrayReaction, sad, - sadReaction, laugh, laughReaction, heart, heartReaction, reactionsList); + sadReaction, laugh, laughReaction, heart, heartReaction, rocket, rocketReaction, eyes, eyeReaction, reactionsList); } private long getId() { diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java index 5ee5a0a4..993a8498 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java @@ -64,6 +64,10 @@ public class TimelineCommentsViewHolder extends BaseViewHolder { @BindView(R.id.hurrayReaction) FontTextView hurrayReaction; @BindView(R.id.sadReaction) FontTextView sadReaction; @BindView(R.id.heartReaction) FontTextView heartReaction; + @BindView(R.id.rocketReaction) FontTextView rocketReaction; + @BindView(R.id.eyeReaction) FontTextView eyeReaction; + @BindView(R.id.rocket) FontTextView rocket; + @BindView(R.id.eyes) FontTextView eyes; private OnToggleView onToggleView; private boolean showEmojies; private ReactionsCallback reactionsCallback; @@ -237,6 +241,14 @@ public class TimelineCommentsViewHolder extends BaseViewHolder { case R.id.hurrayReaction: reactionsModel.setHooray(!isReacted ? reactionsModel.getHooray() + 1 : reactionsModel.getHooray() - 1); break; + case R.id.rocket: + case R.id.rocketReaction: + reactionsModel.setRocket(!isReacted ? reactionsModel.getRocket() + 1 : reactionsModel.getRocket() - 1); + break; + case R.id.eyes: + case R.id.eyeReaction: + reactionsModel.setEyes(!isReacted ? reactionsModel.getEyes() + 1 : reactionsModel.getEyes() - 1); + break; } comment.setReactions(reactionsModel); appendEmojies(reactionsModel); @@ -247,7 +259,7 @@ public class TimelineCommentsViewHolder extends BaseViewHolder { private void appendEmojies(ReactionsModel reaction) { CommentsHelper.appendEmojies(reaction, thumbsUp, thumbsUpReaction, thumbsDown, thumbsDownReaction, hurray, hurrayReaction, sad, - sadReaction, laugh, laughReaction, heart, heartReaction, reactionsList); + sadReaction, laugh, laughReaction, heart, heartReaction, rocket, rocketReaction, eyes, eyeReaction, reactionsList); } private void onToggle(boolean expanded, boolean animate) { diff --git a/app/src/main/res/layouts/row_layouts/layout/comments_dropdown_layout.xml b/app/src/main/res/layouts/row_layouts/layout/comments_dropdown_layout.xml index f34974ef..2c50457e 100644 --- a/app/src/main/res/layouts/row_layouts/layout/comments_dropdown_layout.xml +++ b/app/src/main/res/layouts/row_layouts/layout/comments_dropdown_layout.xml @@ -1,18 +1,17 @@ - @@ -21,8 +20,8 @@ android:id="@+id/emojiesList" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_centerVertical="true" android:layout_centerHorizontal="true" + android:layout_centerVertical="true" android:scrollbarStyle="insideOverlay"> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + + + + diff --git a/app/src/main/res/layouts/row_layouts/layout/comments_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/comments_row_item.xml index 04708ca3..9cccb9dc 100644 --- a/app/src/main/res/layouts/row_layouts/layout/comments_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/comments_row_item.xml @@ -203,6 +203,29 @@ style="@style/TextAppearance.AppCompat.Medium" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/spacing_micro" + android:layout_gravity="center" + android:background="?android:selectableItemBackgroundBorderless" + android:gravity="center" + tools:text="100"/> + + + + - + android:layout_marginStart="@dimen/avatar_margin" + android:layout_marginEnd="@dimen/avatar_margin_end" /> + tools:text="When one acquires" /> + tools:text="50 minutes" /> @@ -85,7 +84,7 @@ android:textColor="?android:attr/textColorSecondary" android:visibility="gone" tools:text="@string/owner" - tools:visibility="visible"/> + tools:visibility="visible" /> + android:src="@drawable/ic_add_emoji" /> + android:src="@drawable/ic_overflow" /> - + + android:layout_marginEnd="@dimen/spacing_xs_large" + android:layout_marginBottom="@dimen/spacing_micro" + android:textIsSelectable="true" /> + android:visibility="gone" + tools:visibility="visible"> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + + + + @@ -214,13 +236,13 @@ android:id="@+id/labelsHolder" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="@dimen/spacing_normal" - android:layout_marginEnd="@dimen/grid_spacing" android:layout_marginStart="@dimen/grid_spacing" android:layout_marginTop="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/grid_spacing" + android:layout_marginBottom="@dimen/spacing_normal" android:background="?card_background" - android:paddingBottom="@dimen/spacing_normal" android:paddingTop="@dimen/spacing_normal" + android:paddingBottom="@dimen/spacing_normal" android:visibility="gone" tools:visibility="visible"> @@ -229,7 +251,7 @@ style="@style/TextAppearance.AppCompat.Caption" android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="center"/> + android:gravity="center" /> \ No newline at end of file diff --git a/app/src/main/res/layouts/row_layouts/layout/review_comments_row_item.xml b/app/src/main/res/layouts/row_layouts/layout/review_comments_row_item.xml index da5229bd..143ccda3 100644 --- a/app/src/main/res/layouts/row_layouts/layout/review_comments_row_item.xml +++ b/app/src/main/res/layouts/row_layouts/layout/review_comments_row_item.xml @@ -1,12 +1,11 @@ - + android:layout_marginStart="@dimen/avatar_margin" + android:layout_marginEnd="@dimen/avatar_margin_end" /> + tools:text="When one acquires" /> + tools:text="50 minutes" /> @@ -76,7 +75,7 @@ android:textColor="?android:attr/textColorSecondary" android:visibility="gone" tools:text="@string/owner" - tools:visibility="visible"/> + tools:visibility="visible" /> + android:src="@drawable/ic_add_emoji" /> + android:src="@drawable/ic_overflow" /> - + + tools:text="Hello World" /> + android:visibility="gone" + tools:visibility="visible"> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + tools:text="100" /> + + + + From a0e2b15690d34705ec74afc27d6a1539387736cc Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:06:54 +0100 Subject: [PATCH 43/59] assign click and long click to reactions --- .../ui/adapter/viewholder/IssueDetailsViewHolder.java | 8 ++++++++ .../ui/adapter/viewholder/ReviewCommentsViewHolder.java | 8 ++++++++ .../ui/adapter/viewholder/TimelineCommentsViewHolder.java | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java index 579b6903..354592a2 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java @@ -117,6 +117,14 @@ public class IssueDetailsViewHolder extends BaseViewHolder { thumbsUpReaction.setOnLongClickListener(this); hurrayReaction.setOnLongClickListener(this); heartReaction.setOnLongClickListener(this); + rocketReaction.setOnLongClickListener(this); + rocketReaction.setOnClickListener(this); + rocket.setOnLongClickListener(this); + rocket.setOnClickListener(this); + eyeReaction.setOnLongClickListener(this); + eyeReaction.setOnClickListener(this); + eyes.setOnLongClickListener(this); + eyes.setOnClickListener(this); } public static IssueDetailsViewHolder newInstance(@NonNull ViewGroup viewGroup, @Nullable BaseRecyclerAdapter adapter, diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java index da843e10..d3986904 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java @@ -126,6 +126,14 @@ public class ReviewCommentsViewHolder extends BaseViewHolder thumbsUpReaction.setOnLongClickListener(this); hurrayReaction.setOnLongClickListener(this); heartReaction.setOnLongClickListener(this); + rocketReaction.setOnLongClickListener(this); + rocketReaction.setOnClickListener(this); + rocket.setOnLongClickListener(this); + rocket.setOnClickListener(this); + eyeReaction.setOnLongClickListener(this); + eyeReaction.setOnClickListener(this); + eyes.setOnLongClickListener(this); + eyes.setOnClickListener(this); } public static ReviewCommentsViewHolder newInstance(ViewGroup viewGroup, BaseRecyclerAdapter adapter, diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java index 993a8498..75616ad5 100644 --- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java +++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java @@ -137,6 +137,14 @@ public class TimelineCommentsViewHolder extends BaseViewHolder { thumbsUpReaction.setOnLongClickListener(this); hurrayReaction.setOnLongClickListener(this); heartReaction.setOnLongClickListener(this); + rocketReaction.setOnLongClickListener(this); + rocketReaction.setOnClickListener(this); + rocket.setOnLongClickListener(this); + rocket.setOnClickListener(this); + eyeReaction.setOnLongClickListener(this); + eyeReaction.setOnClickListener(this); + eyes.setOnLongClickListener(this); + eyes.setOnClickListener(this); } public static TimelineCommentsViewHolder newInstance(@NonNull ViewGroup viewGroup, @Nullable IssuesTimelineAdapter adapter, From 9709baa13e39a8571fd898ef63a7eb7b21ef4b3e Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:24:00 +0100 Subject: [PATCH 44/59] fix posting reaction --- app/src/main/AndroidManifest.xml | 1 - .../data/dao/types/ReactionTypes.java | 10 ++ .../provider/tasks/git/ReactionService.java | 109 ------------------ .../provider/timeline/CommentsHelper.java | 11 +- .../provider/timeline/ReactionsProvider.java | 8 +- 5 files changed, 16 insertions(+), 123 deletions(-) delete mode 100644 app/src/main/java/com/fastaccess/provider/tasks/git/ReactionService.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 796c4f31..0ecf87ab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -306,7 +306,6 @@ - showNotification(getNotification(reactionType), (int) commentId)) - .subscribe(response -> hideNotification((int) commentId), throwable -> hideNotification((int) commentId)); - } - - private void postCommit(@NonNull ReactionTypes reactionType, @NonNull String login, @NonNull String repo, long commentId, boolean isEnterprise) { - RxHelper.safeObservable(RestProvider.getReactionsService(isEnterprise) - .postCommitReaction(new PostReactionModel(reactionType.getContent()), login, repo, commentId)) - .doOnSubscribe(disposable -> showNotification(getNotification(reactionType), (int) commentId)) - .subscribe(response -> hideNotification((int) commentId), throwable -> hideNotification((int) commentId)); - } - - public NotificationCompat.Builder getNotification(@NonNull ReactionTypes reactionTypes) { - if (notification == null) { - notification = new NotificationCompat.Builder(this, "reaction") - .setSmallIcon(R.drawable.ic_sync) - .setProgress(0, 100, true); - } - notification.setContentTitle(getString(R.string.posting_reaction, reactionTypes.getContent())); - return notification; - } - - public NotificationManager getNotificationManager() { - if (notificationManager == null) { - notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - } - return notificationManager; - } - - private void showNotification(@NonNull NotificationCompat.Builder builder, int id) { - getNotificationManager().notify(id, builder.build()); - } - - private void hideNotification(int id) { - getNotificationManager().cancel(id); - } -} diff --git a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java index 727f3f49..9b9dba3f 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java @@ -1,28 +1,21 @@ package com.fastaccess.provider.timeline; -import android.content.Context; - -import androidx.annotation.IdRes; -import androidx.annotation.NonNull; - import android.view.View; import android.widget.TextView; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; -import com.fastaccess.R; import com.fastaccess.data.dao.ReactionsModel; import com.fastaccess.data.dao.TimelineModel; import com.fastaccess.data.dao.model.Comment; import com.fastaccess.data.dao.types.ReactionTypes; -import com.fastaccess.provider.tasks.git.ReactionService; import com.fastaccess.ui.widgets.SpannableBuilder; -import org.w3c.dom.Text; - import java.util.ArrayList; import java.util.List; +import androidx.annotation.NonNull; + /** * Created by Kosh on 30 Mar 2017, 6:44 PM */ diff --git a/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java b/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java index e185c5cc..7de56895 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java @@ -50,19 +50,19 @@ public class ReactionsProvider { switch (reactionType) { case COMMENT: observable = RestProvider.getReactionsService(isEnterprise) - .postIssueCommentReaction(new PostReactionModel(reactionTypes.getContent()), login, repoId, idOrNumber); + .postIssueCommentReaction(new PostReactionModel(reactionTypes.getPostContent()), login, repoId, idOrNumber); break; case HEADER: observable = RestProvider.getReactionsService(isEnterprise) - .postIssueReaction(new PostReactionModel(reactionTypes.getContent()), login, repoId, idOrNumber); + .postIssueReaction(new PostReactionModel(reactionTypes.getPostContent()), login, repoId, idOrNumber); break; case REVIEW_COMMENT: observable = RestProvider.getReactionsService(isEnterprise) - .postCommentReviewReaction(new PostReactionModel(reactionTypes.getContent()), login, repoId, idOrNumber); + .postCommentReviewReaction(new PostReactionModel(reactionTypes.getPostContent()), login, repoId, idOrNumber); break; case COMMIT: observable = RestProvider.getReactionsService(isEnterprise) - .postCommitReaction(new PostReactionModel(reactionTypes.getContent()), login, repoId, idOrNumber); + .postCommitReaction(new PostReactionModel(reactionTypes.getPostContent()), login, repoId, idOrNumber); break; } if (observable == null) return null; From 0140b6502f0c8b851e2b1c74a8d1826ddec92233 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:29:36 +0100 Subject: [PATCH 45/59] added changelog --- app/src/main/res/raw/changelog.html | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/raw/changelog.html b/app/src/main/res/raw/changelog.html index 056c8c18..b2782853 100644 --- a/app/src/main/res/raw/changelog.html +++ b/app/src/main/res/raw/changelog.html @@ -8,19 +8,20 @@

    What’s new?

      -
    • Fix Trending (Finally, I KNOW!)
    • -
    • Fix Wiki (I know, I know…)
    • -
    • Migrate to Androidx
    • +
    • Added private Gist creation
    • +
    • Added Rocket & Eyes reactions
    • +
    • Added show file history to file menu (in addition to long click)
    • +
    • Fixed Downloading files on Android 9+
    • +
    • Fixed Thumbs up & down reaction listing
    • +
    • Fixed as a collaborator now you can add comments on locked issues/prs
    • +
    • Fixed crash in editing a comment in a gist
    • +
    • Remove shrug from empty states
    • +
    • Remove redundant unsubscribe button from notifications screen
    • +
    • Replace Send Feedback with a button to FastHub Repo (Issue Tab)
    • +
    • alot of other stuff I can’t remember!
    -

    I hear you asking (So what happened)?

    -

    Well, I was pretty much busy with life and work, but that’s not an excuse, I - know!. TBH with you all, I started working on FastHub v5 beginning of last year and I did actually made a good progress but then crisis - landed on me when my mom diagnosed with cancer and that really stroke me hard and demotivated me to even care about my own health, it - took awhile for me to recover and start accepting this fact and i’m still trying to figure out ways to motivate myself more to progress - on FastHub or anything in the Open Source Community.

    -

    TL;DR: this is just a bug fix version and I will continue to fix bugs until V5 is ready for shipment.

    - -

    Thank you to all who have contributed either via reporting bugs or via code contribution.

    - +

    I hear you asking (So what happened)?

    +

    Well, I was pretty much busy with life and work, but that’s not an excuse, I know!. TBH with you all, I started working on FastHub v5 beginning of last year and I did actually made a good progress but then crisis landed on me when my mom diagnostic with cancer and that really stroke me hard and demotivated me to even care about my own health, it took awhile for me to recover and start accepting this fact and i’m still trying to figure out way to motivate myself more to progress on FastHub or anything in the Open Source Community.

    +

    TL;DR: this is just a bug fix version and I will continue to fix bugs until V5 is ready for shipment.

    From f2c04476df9473fd0c56733c958a20c343c07dce Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:40:34 +0100 Subject: [PATCH 46/59] fix double reaction --- .../com/fastaccess/provider/timeline/ReactionsProvider.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java b/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java index 7de56895..ab93b529 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/ReactionsProvider.java @@ -91,7 +91,7 @@ public class ReactionsProvider { return false; } ReactionTypes type = ReactionTypes.get(vId); - return type != null && type.getContent().equals(reactionsModel.getContent()); + return type != null && (type.getContent().equals(reactionsModel.getContent()) || type.getPostContent().equals(reactionsModel.getContent())); } public boolean isCallingApi(long id, int vId) { @@ -100,7 +100,8 @@ public class ReactionsProvider { return false; } ReactionTypes type = ReactionTypes.get(vId); - return type != null && type.getContent().equals(reactionsModel.getContent()) && reactionsModel.isCallingApi(); + return type != null && (type.getContent().equals(reactionsModel.getContent()) || type.getPostContent().equals(reactionsModel.getContent())) + && reactionsModel.isCallingApi(); } @NonNull private Map getReactionsMap() { From 6799faa8bf2ac35d71baa91765ae1ab941348580 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:44:05 +0100 Subject: [PATCH 47/59] release 4.7.0 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 29c53768..3d74a745 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,7 +29,7 @@ android { applicationId "com.fastaccess.github" minSdkVersion 21 targetSdkVersion 29 - versionCode 470 + versionCode 471 versionName "4.7.0" buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string From 0f649d98a3cf27e5fc2e03df89e4ff496a15d3fd Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Fri, 27 Dec 2019 22:48:33 +0100 Subject: [PATCH 48/59] remove greetings workflow --- .github/workflows/greetings.yml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 .github/workflows/greetings.yml diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml deleted file mode 100644 index f9daf71d..00000000 --- a/.github/workflows/greetings.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Greetings - -on: [pull_request, issues] - -jobs: - greeting: - runs-on: ubuntu-latest - steps: - - uses: actions/first-interaction@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-message: 'Horray🎉🎉,you've made you first issue, Thanks for contributing❤️'' first issue' - pr-message: 'Horray🎉🎉,you've made you first issue, Thanks for contributing❤️'' first pr' From cdebb5c63510e17bacd41f6fe4b3a71808a2eae4 Mon Sep 17 00:00:00 2001 From: Kosh Sergani Date: Fri, 27 Dec 2019 22:49:48 +0100 Subject: [PATCH 49/59] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 1156de71..a618317b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: k0shk0sh # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: FastHub open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From 696829f8a133beee6da5dbb8f0bcc25a713a1edf Mon Sep 17 00:00:00 2001 From: Kosh Sergani Date: Fri, 27 Dec 2019 22:50:35 +0100 Subject: [PATCH 50/59] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index a618317b..1156de71 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: k0shk0sh # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: FastHub open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From fdec9c1eac770e9bc3013fc8f37bcf0f00aeb878 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Sat, 28 Dec 2019 09:54:07 +0100 Subject: [PATCH 51/59] fix download releases and release 4.7.2 --- app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 4 ++++ .../fastaccess/data/dao/SimpleUrlsModel.java | 7 +++++++ .../fastaccess/provider/rest/RestProvider.java | 7 +++++++ .../code/releases/RepoReleasesFragment.java | 17 ++++++++++------- 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3d74a745..eb6acea1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { applicationId "com.fastaccess.github" minSdkVersion 21 targetSdkVersion 29 - versionCode 471 - versionName "4.7.0" + versionCode 472 + versionName "4.7.2" buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string buildConfigString "IMGUR_CLIENT_ID", (buildProperties.secrets['imgur_client_id'] | buildProperties.notThere['imgur_client_id']).string diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0ecf87ab..d2451022 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -316,6 +316,10 @@
    + + diff --git a/app/src/main/java/com/fastaccess/data/dao/SimpleUrlsModel.java b/app/src/main/java/com/fastaccess/data/dao/SimpleUrlsModel.java index ddff012b..7a7293fe 100644 --- a/app/src/main/java/com/fastaccess/data/dao/SimpleUrlsModel.java +++ b/app/src/main/java/com/fastaccess/data/dao/SimpleUrlsModel.java @@ -16,12 +16,19 @@ public class SimpleUrlsModel implements Parcelable { public String item; public String url; + public String extension; public SimpleUrlsModel(String item, String url) { this.item = item; this.url = url; } + public SimpleUrlsModel(String item, String url, String extension) { + this.item = item; + this.url = url; + this.extension = extension; + } + @Override public String toString() { return item; } diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 94ae9800..b2e0cb4e 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -92,6 +92,10 @@ public class RestProvider { } public static void downloadFile(@NonNull Context context, @NonNull String url) { + downloadFile(context, url, null); + } + + public static void downloadFile(@NonNull Context context, @NonNull String url, @Nullable String extension) { try { if (InputHelper.isEmpty(url)) return; boolean isEnterprise = LinkParserHelper.isEnterprise(url); @@ -103,6 +107,9 @@ public class RestProvider { request.addRequestHeader("Authorization", authToken.startsWith("Basic") ? authToken : "token " + authToken); } String fileName = new File(url).getName(); + if (!InputHelper.isEmpty(extension)) { + fileName += extension; + } request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); request.setTitle(fileName); request.setDescription(context.getString(R.string.downloading_file)); diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java index 9a399649..04a003c3 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java @@ -1,10 +1,13 @@ package com.fastaccess.ui.modules.repos.code.releases; +import android.app.Activity; import android.os.Bundle; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; + import android.view.View; import com.annimon.stream.Collectors; @@ -139,13 +142,11 @@ public class RepoReleasesFragment extends BaseFragment models = new ArrayList<>(); if (!InputHelper.isEmpty(item.getZipBallUrl())) { String url = item.getZipBallUrl(); - if (!url.endsWith(".tar.gz")) { - url = url + ".tar.gz"; - } - models.add(new SimpleUrlsModel(getString(R.string.download_as_zip), url)); + models.add(new SimpleUrlsModel(getString(R.string.download_as_zip), url, ".zip")); } if (!InputHelper.isEmpty(item.getTarballUrl())) { - models.add(new SimpleUrlsModel(getString(R.string.download_as_tar), item.getTarballUrl())); + String url = item.getTarballUrl(); + models.add(new SimpleUrlsModel(getString(R.string.download_as_tar), url, ".tar.gz")); } if (item.getAssets() != null && !item.getAssets().isEmpty()) { ArrayList mapped = Stream.of(item.getAssets()) @@ -180,8 +181,10 @@ public class RepoReleasesFragment extends BaseFragment Date: Sat, 28 Dec 2019 10:01:36 +0100 Subject: [PATCH 52/59] remove github page --- _config.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 _config.yml diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 259a24e4..00000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-tactile \ No newline at end of file From ee7ce09eba7b676ff2411a09a57144524aedb1dd Mon Sep 17 00:00:00 2001 From: Kosh Sergani Date: Sat, 28 Dec 2019 10:05:20 +0100 Subject: [PATCH 53/59] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 31 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 +++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..6a07e933 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: '' +assignees: '' + +--- + + + +**FastHub Version:** +**Android Version:** +**Device Information:** +- MANUFACTURER: +- BRAND: +- MODEL: +--- diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..9e8ab6a6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FR]" +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 455d2b0ee14d61c9c8a1935a1746f59327a40793 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Sat, 28 Dec 2019 10:19:21 +0100 Subject: [PATCH 54/59] add firebase pref dependency --- .github/ISSUE_TEMPLATE.md | 22 ---------------------- app/build.gradle | 2 ++ build.gradle | 1 + 3 files changed, 3 insertions(+), 22 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 6bb31a1c..00000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,22 +0,0 @@ - - -**FastHub Version:** -**Android Version:** -**Device Information:** -- MANUFACTURER: -- BRAND: -- MODEL: ---- diff --git a/app/build.gradle b/app/build.gradle index eb6acea1..572b5466 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,7 @@ apply plugin: 'kotlin-kapt' apply plugin: 'com.apollographql.android' apply plugin: 'com.novoda.build-properties' apply plugin: 'io.fabric' +apply plugin: 'com.google.firebase.firebase-perf' buildProperties { notThere { @@ -147,6 +148,7 @@ dependencies { implementation "com.google.firebase:firebase-inappmessaging:19.0.2" implementation "com.google.firebase:firebase-messaging:20.1.0" implementation "com.google.firebase:firebase-database:19.2.0" + implementation 'com.google.firebase:firebase-perf:19.0.4' implementation "com.google.android.gms:play-services-base:17.1.0" implementation('com.github.b3er.rxfirebase:firebase-database-kotlin:11.2.0') { transitive = false } implementation('com.github.b3er.rxfirebase:firebase-database:11.2.0') { transitive = false } diff --git a/build.gradle b/build.gradle index 31b23c6c..356b722c 100644 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,7 @@ buildscript { classpath 'com.novoda:gradle-build-properties-plugin:0.4.1' classpath 'io.fabric.tools:gradle:1.31.2' classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.2.2' + classpath 'com.google.firebase:perf-plugin:1.3.1' } } From ba3d0ea29607f242529f979e140cc3db91326936 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Sun, 29 Dec 2019 12:17:11 +0100 Subject: [PATCH 55/59] this fixes #2844 --- app/src/main/AndroidManifest.xml | 1 - .../data/dao/SlackInvitePostModel.java | 39 ---------- .../data/dao/SlackResponseModel.java | 36 --------- .../fastaccess/data/service/SlackService.java | 20 ----- .../provider/rest/RestProvider.java | 10 --- .../tasks/git/GithubActionService.java | 63 +++++++-------- .../tasks/slack/SlackInvitationService.java | 46 ----------- .../modules/about/FastHubAboutActivity.java | 5 -- .../ui/modules/main/MainActivity.java | 30 ++----- .../settings/SlackBottomSheetDialog.java | 78 ------------------- .../main_layouts/layout/icon_row_item.xml | 2 +- app/src/main/res/values/strings.xml | 1 - app/src/main/res/xml/about_settings.xml | 5 -- 13 files changed, 35 insertions(+), 301 deletions(-) delete mode 100644 app/src/main/java/com/fastaccess/data/dao/SlackInvitePostModel.java delete mode 100644 app/src/main/java/com/fastaccess/data/dao/SlackResponseModel.java delete mode 100644 app/src/main/java/com/fastaccess/data/service/SlackService.java delete mode 100644 app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java delete mode 100644 app/src/main/java/com/fastaccess/ui/modules/settings/SlackBottomSheetDialog.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d2451022..a85fbae7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -306,7 +306,6 @@
    - CREATOR = new Parcelable.Creator() { - @Override public SlackInvitePostModel createFromParcel(Parcel source) {return new SlackInvitePostModel(source);} - - @Override public SlackInvitePostModel[] newArray(int size) {return new SlackInvitePostModel[size];} - }; -} diff --git a/app/src/main/java/com/fastaccess/data/dao/SlackResponseModel.java b/app/src/main/java/com/fastaccess/data/dao/SlackResponseModel.java deleted file mode 100644 index d30da669..00000000 --- a/app/src/main/java/com/fastaccess/data/dao/SlackResponseModel.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.fastaccess.data.dao; - -import android.os.Parcel; -import android.os.Parcelable; - -import lombok.Getter; -import lombok.Setter; - -/** - * Created by Kosh on 01 May 2017, 1:05 AM - */ - -@Getter @Setter public class SlackResponseModel implements Parcelable { - private boolean ok; - private String error; - - @Override public int describeContents() { return 0; } - - @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeByte(this.ok ? (byte) 1 : (byte) 0); - dest.writeString(this.error); - } - - public SlackResponseModel() {} - - private SlackResponseModel(Parcel in) { - this.ok = in.readByte() != 0; - this.error = in.readString(); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override public SlackResponseModel createFromParcel(Parcel source) {return new SlackResponseModel(source);} - - @Override public SlackResponseModel[] newArray(int size) {return new SlackResponseModel[size];} - }; -} diff --git a/app/src/main/java/com/fastaccess/data/service/SlackService.java b/app/src/main/java/com/fastaccess/data/service/SlackService.java deleted file mode 100644 index 7aca9e4a..00000000 --- a/app/src/main/java/com/fastaccess/data/service/SlackService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.fastaccess.data.service; - -import com.fastaccess.data.dao.SlackInvitePostModel; -import com.fastaccess.data.dao.SlackResponseModel; - -import retrofit2.http.Body; -import retrofit2.http.Headers; -import retrofit2.http.POST; -import io.reactivex.Observable; - -/** - * Created by Kosh on 01 May 2017, 1:04 AM - */ - -public interface SlackService { - - @POST("FastHubSlackInvite") - @Headers("X-API-Key: MvFQyrJ9703DYmKHvk13I3agw3AdH8vh1lKbKGx4") - Observable invite(@Body SlackInvitePostModel body); -} diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index b2e0cb4e..1c7158e2 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -22,7 +22,6 @@ import com.fastaccess.data.service.ReactionsService; import com.fastaccess.data.service.RepoService; import com.fastaccess.data.service.ReviewService; import com.fastaccess.data.service.SearchService; -import com.fastaccess.data.service.SlackService; import com.fastaccess.data.service.UserRestService; import com.fastaccess.helper.InputHelper; import com.fastaccess.helper.PrefGetter; @@ -180,15 +179,6 @@ public class RestProvider { return provideRetrofit(enterprise).create(SearchService.class); } - @NonNull public static SlackService getSlackService() { - return new Retrofit.Builder() - .baseUrl("https://ok13pknpj4.execute-api.eu-central-1.amazonaws.com/prod/") - .addConverterFactory(new GithubResponseConverter(gson)) - .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) - .build() - .create(SlackService.class); - } - @NonNull public static ContentService getContentService(boolean enterprise) { return provideRetrofit(enterprise).create(ContentService.class); } diff --git a/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java b/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java index ba4240a5..9a655cc3 100644 --- a/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java +++ b/app/src/main/java/com/fastaccess/provider/tasks/git/GithubActionService.java @@ -1,5 +1,6 @@ package com.fastaccess.provider.tasks.git; +import android.annotation.SuppressLint; import android.app.IntentService; import android.app.NotificationManager; import android.content.Context; @@ -26,7 +27,7 @@ import io.reactivex.schedulers.Schedulers; /** * Created by Kosh on 12 Mar 2017, 2:25 PM */ - +@SuppressWarnings("ResultOfMethodCallIgnored") @SuppressLint("CheckResult") public class GithubActionService extends IntentService { public static final int STAR_REPO = 1; @@ -39,7 +40,6 @@ public class GithubActionService extends IntentService { public static final int FORK_GIST = 8; private NotificationCompat.Builder notification; private NotificationManager notificationManager; - private CompositeDisposable disposable = new CompositeDisposable(); @IntDef({ STAR_REPO, @@ -116,113 +116,102 @@ public class GithubActionService extends IntentService { } @Override public void onDestroy() { - disposable.clear(); super.onDestroy(); } private void forkGist(@Nullable String id, boolean isEnterprise) { if (id != null) { String msg = getString(R.string.forking, getString(R.string.gist)); - disposable.add( - RestProvider.getGistService(isEnterprise) - .forkGist(id) - .doOnSubscribe(disposable -> showNotification(msg)) - .subscribeOn(Schedulers.io()) - .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + RestProvider.getGistService(isEnterprise) + .forkGist(id) + .doOnSubscribe(disposable -> showNotification(msg)) + .subscribeOn(Schedulers.io()) + .subscribe(response -> { + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void forkRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.forking, id); - disposable.add( - RestProvider.getRepoService(isEnterprise) - .forkRepo(login, id) - .doOnSubscribe(disposable -> showNotification(msg)) - .subscribeOn(Schedulers.io()) - .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + RestProvider.getRepoService(isEnterprise) + .forkRepo(login, id) + .doOnSubscribe(disposable -> showNotification(msg)) + .subscribeOn(Schedulers.io()) + .subscribe(response -> { + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void starGist(@Nullable String id, boolean isEnterprise) { if (id != null) { String msg = getString(R.string.starring, getString(R.string.gist)); - disposable.add(RestProvider.getGistService(isEnterprise) + RestProvider.getGistService(isEnterprise) .starGist(id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void starRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.starring, id); - disposable.add(RestProvider.getRepoService(isEnterprise) + RestProvider.getRepoService(isEnterprise) .starRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void unStarGist(@Nullable String id, boolean isEnterprise) { if (id != null) { String msg = getString(R.string.un_starring, getString(R.string.gist)); - disposable.add(RestProvider.getGistService(isEnterprise) + RestProvider.getGistService(isEnterprise) .unStarGist(id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void unStarRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.un_starring, id); - disposable.add(RestProvider.getRepoService(isEnterprise) + RestProvider.getRepoService(isEnterprise) .unstarRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void unWatchRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.un_watching, id); - disposable.add(RestProvider.getRepoService(isEnterprise) + RestProvider.getRepoService(isEnterprise) .unwatchRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } private void watchRepo(@Nullable String id, @Nullable String login, boolean isEnterprise) { if (id != null && login != null) { String msg = getString(R.string.watching, id); - disposable.add(RestProvider.getRepoService(isEnterprise) + RestProvider.getRepoService(isEnterprise) .watchRepo(login, id) .doOnSubscribe(disposable -> showNotification(msg)) .subscribeOn(Schedulers.io()) .subscribe(response -> { - }, throwable -> hideNotification(msg), () -> hideNotification(msg)) - ); + }, throwable -> hideNotification(msg), () -> hideNotification(msg)); } } diff --git a/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java b/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java deleted file mode 100644 index 1c00ba23..00000000 --- a/app/src/main/java/com/fastaccess/provider/tasks/slack/SlackInvitationService.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.fastaccess.provider.tasks.slack; - -import android.app.IntentService; -import android.content.Intent; -import androidx.annotation.Nullable; - -import com.fastaccess.App; -import com.fastaccess.R; -import com.fastaccess.data.dao.SlackInvitePostModel; -import com.fastaccess.data.dao.model.Login; -import com.fastaccess.helper.RxHelper; -import com.fastaccess.provider.rest.RestProvider; - -import es.dmoral.toasty.Toasty; - -/** - * Created by Kosh on 01 May 2017, 1:09 AM - */ - -public class SlackInvitationService extends IntentService { - - public SlackInvitationService() { - super(SlackInvitationService.class.getName()); - } - - @Override protected void onHandleIntent(@Nullable Intent intent) { - Login login = Login.getUser(); - if (login != null) { - SlackInvitePostModel body = new SlackInvitePostModel(); - body.setEmail(login.getEmail()); - body.setFirst_name(login.getName()); - body.setLast_name(login.getLogin()); - RxHelper.getObservable(RestProvider.getSlackService() - .invite(body)) - .subscribe(response -> { - if (response != null) { - if (response.isOk()) { - Toasty.success(App.getInstance(), getString(R.string.successfully_invited)).show(); - } else { - Toasty.info(App.getInstance(), response.getError().replaceAll("_", " ")).show(); - } - } - }, Throwable::printStackTrace); - } - } -} diff --git a/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java b/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java index 0f55f9b9..9a18f456 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/about/FastHubAboutActivity.java @@ -143,11 +143,6 @@ public class FastHubAboutActivity extends MaterialAboutActivity { .icon(ContextCompat.getDrawable(context, R.drawable.ic_track_changes)) .setOnClickAction(() -> new ChangelogBottomSheetDialog().show(getSupportFragmentManager(), "ChangelogBottomSheetDialog")) .build()) - .addItem(new MaterialAboutActionItem.Builder() - .text(R.string.join_slack) - .icon(ContextCompat.getDrawable(context, R.drawable.ic_slack)) - .setOnClickAction(() -> ActivityHelper.startCustomTab(this, "http://rebrand.ly/fasthub")) - .build()) .addItem(new MaterialAboutActionItem.Builder() .text(R.string.open_source_libs) .icon(ContextCompat.getDrawable(context, R.drawable.ic_github)) diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java b/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java index 544e97e9..4a84a37a 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java +++ b/app/src/main/java/com/fastaccess/ui/modules/main/MainActivity.java @@ -3,28 +3,18 @@ package com.fastaccess.ui.modules.main; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.fastaccess.BuildConfig; -import com.fastaccess.helper.Logger; -import com.google.android.gms.tasks.OnSuccessListener; -import com.google.android.material.floatingactionbutton.FloatingActionButton; - -import androidx.fragment.app.FragmentManager; -import androidx.core.view.GravityCompat; - import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import com.evernote.android.state.State; import com.fastaccess.App; +import com.fastaccess.BuildConfig; import com.fastaccess.R; import com.fastaccess.data.dao.model.Login; import com.fastaccess.data.dao.model.Notification; import com.fastaccess.helper.BundleConstant; +import com.fastaccess.helper.Logger; import com.fastaccess.helper.PrefGetter; import com.fastaccess.helper.TypeFaceHelper; import com.fastaccess.helper.ViewHelper; @@ -34,11 +24,14 @@ import com.fastaccess.ui.modules.main.issues.pager.MyIssuesPagerFragment; import com.fastaccess.ui.modules.main.pullrequests.pager.MyPullsPagerFragment; import com.fastaccess.ui.modules.notification.NotificationActivity; import com.fastaccess.ui.modules.search.SearchActivity; -import com.fastaccess.ui.modules.settings.SlackBottomSheetDialog; import com.fastaccess.ui.modules.user.UserPagerActivity; +import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.firebase.iid.FirebaseInstanceId; -import com.google.firebase.iid.InstanceIdResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.view.GravityCompat; +import androidx.fragment.app.FragmentManager; import butterknife.BindView; import butterknife.OnClick; import it.sephiroth.android.library.bottomnavigation.BottomNavigation; @@ -76,16 +69,9 @@ public class MainActivity extends BaseActivity impl @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (savedInstanceState == null) { - if (getIntent() != null && getIntent().getBooleanExtra(SlackBottomSheetDialog.TAG, false)) { - new SlackBottomSheetDialog().show(getSupportFragmentManager(), SlackBottomSheetDialog.TAG); - } - } if (BuildConfig.DEBUG) { - FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(o -> { - Logger.e(o.getId(), o.getToken()); - }); + FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(o -> Logger.e(o.getId(), o.getToken())); } getPresenter().setEnterprise(PrefGetter.isEnterprise()); diff --git a/app/src/main/java/com/fastaccess/ui/modules/settings/SlackBottomSheetDialog.java b/app/src/main/java/com/fastaccess/ui/modules/settings/SlackBottomSheetDialog.java deleted file mode 100644 index 232b92c5..00000000 --- a/app/src/main/java/com/fastaccess/ui/modules/settings/SlackBottomSheetDialog.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.fastaccess.ui.modules.settings; - -import android.content.Context; -import android.os.Bundle; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import android.view.View; - -import com.fastaccess.R; -import com.fastaccess.helper.ActivityHelper; -import com.fastaccess.ui.base.BaseBottomSheetDialog; -import com.fastaccess.ui.widgets.FontButton; -import com.fastaccess.ui.widgets.FontTextView; - -import butterknife.BindView; -import butterknife.OnClick; - -/** - * Created by Kosh on 01 May 2017, 12:58 AM - */ - -public class SlackBottomSheetDialog extends BaseBottomSheetDialog { - public interface SlackDialogListener { - void onDismissed(); - } - - public static final String TAG = SlackBottomSheetDialog.class.getSimpleName(); - - @BindView(R.id.title) FontTextView title; - @BindView(R.id.message) FontTextView message; - @BindView(R.id.cancel) FontButton cancel; - @BindView(R.id.ok) FontButton ok; - private SlackDialogListener listener; - - @Override public void onAttach(Context context) { - super.onAttach(context); - if (context instanceof SlackDialogListener) { - listener = (SlackDialogListener) context; - } - } - - @Override public void onDetach() { - listener = null; - super.onDetach(); - } - - @Override protected int layoutRes() { - return R.layout.message_dialog; - } - - @OnClick({R.id.cancel, R.id.ok}) public void onViewClicked(View view) { - switch (view.getId()) { - case R.id.ok: - ActivityHelper.startCustomTab(getActivity(), "http://rebrand.ly/fasthub"); - break; - } - if (listener != null) listener.onDismissed(); - dismiss(); - } - - @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - cancel.setText(R.string.no); - ok.setText(R.string.yes); - title.setText(R.string.join_slack); - message.setText(getString(R.string.join_slack_message)); - } - - @Override protected void onHidden() { - if (listener != null) listener.onDismissed(); - super.onHidden(); - } - - @Override protected void onDismissedByScrolling() { - if (listener != null) listener.onDismissed(); - super.onDismissedByScrolling(); - } -} diff --git a/app/src/main/res/layouts/main_layouts/layout/icon_row_item.xml b/app/src/main/res/layouts/main_layouts/layout/icon_row_item.xml index dce0bad5..97cbe2a5 100644 --- a/app/src/main/res/layouts/main_layouts/layout/icon_row_item.xml +++ b/app/src/main/res/layouts/main_layouts/layout/icon_row_item.xml @@ -14,7 +14,7 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/spacing_large" - tools:src="@drawable/ic_slack"/> + tools:src="@drawable/ic_fasthub_mascot"/> In Files
    In Paths Review Requests - Join Slack Would you like to join FastHub Slack group? Successfully invited Reply diff --git a/app/src/main/res/xml/about_settings.xml b/app/src/main/res/xml/about_settings.xml index 43cb0597..333aa9f2 100644 --- a/app/src/main/res/xml/about_settings.xml +++ b/app/src/main/res/xml/about_settings.xml @@ -3,11 +3,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - - Date: Sun, 29 Dec 2019 12:38:10 +0100 Subject: [PATCH 56/59] release 4.7.3 --- app/build.gradle | 5 +- .../main/assets/lottie/bounching_ball.json | 1 - .../assets/lottie/code_invite_success.json | 1 - .../provider/fabric/FabricProvider.kt | 2 + .../modules/main/premium/PremiumActivity.kt | 99 +++------- .../projects/details/ProjectPagerActivity.kt | 5 +- .../layout/pro_features_layout.xml | 174 +++++------------- .../layout/projects_activity_layout.xml | 18 +- 8 files changed, 92 insertions(+), 213 deletions(-) delete mode 100644 app/src/main/assets/lottie/bounching_ball.json delete mode 100644 app/src/main/assets/lottie/code_invite_success.json diff --git a/app/build.gradle b/app/build.gradle index 572b5466..5f5db43c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,8 +30,8 @@ android { applicationId "com.fastaccess.github" minSdkVersion 21 targetSdkVersion 29 - versionCode 472 - versionName "4.7.2" + versionCode 473 + versionName "4.7.3" buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string buildConfigString "IMGUR_CLIENT_ID", (buildProperties.secrets['imgur_client_id'] | buildProperties.notThere['imgur_client_id']).string @@ -162,7 +162,6 @@ dependencies { implementation("com.apollographql.apollo:apollo-runtime:1.2.2") implementation 'com.jaredrummler:android-device-names:1.1.9' implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.1.0' - implementation 'com.airbnb.android:lottie:3.3.1' implementation 'com.firebase:firebase-jobdispatcher:0.8.2' implementation 'com.google.guava:guava:27.0.1-android' /*to be removed*/ debugImplementation 'com.github.whataa:pandora:2.0.6' diff --git a/app/src/main/assets/lottie/bounching_ball.json b/app/src/main/assets/lottie/bounching_ball.json deleted file mode 100644 index c7de61b8..00000000 --- a/app/src/main/assets/lottie/bounching_ball.json +++ /dev/null @@ -1 +0,0 @@ -{"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"形状图层 5","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":8,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":24,"s":[30],"e":[100]},{"t":40}]},"r":{"k":0},"p":{"k":[187.875,77.125,0]},"a":{"k":[-76.375,-2.875,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":8,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":24,"s":[200,200,100],"e":[100,100,100]},{"t":40}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.87,0.42,0.56,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"形状图层 4","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":6,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":22,"s":[30],"e":[100]},{"t":36}]},"r":{"k":0},"p":{"k":[162.125,76.625,0]},"a":{"k":[-76.375,-2.875,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":6,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":22,"s":[200,200,100],"e":[100,100,100]},{"t":36}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.81,0.55,0.82,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"形状图层 3","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":4,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":20,"s":[30],"e":[100]},{"t":32}]},"r":{"k":0},"p":{"k":[135.625,76.625,0]},"a":{"k":[-76.375,-2.875,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":4,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":20,"s":[200,200,100],"e":[100,100,100]},{"t":32}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.47,0.31,0.62,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"形状图层 2","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":2,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":16,"s":[30],"e":[100]},{"t":28}]},"r":{"k":0},"p":{"k":[109.375,76.625,0]},"a":{"k":[-76.625,-3.125,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":2,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":16,"s":[200,200,100],"e":[100,100,100]},{"t":28}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.54,0.81,0.89,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"形状图层 1","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":12,"s":[30],"e":[100]},{"t":24}]},"r":{"k":0},"p":{"k":[82.625,76.625,0]},"a":{"k":[-76.625,-3.375,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":0,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":12,"s":[200,200,100],"e":[100,100,100]},{"t":24}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.34,0.45,0.78,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1}],"v":"4.5.4","ddd":0,"ip":0,"op":40,"fr":24,"w":280,"h":160} \ No newline at end of file diff --git a/app/src/main/assets/lottie/code_invite_success.json b/app/src/main/assets/lottie/code_invite_success.json deleted file mode 100644 index d5882bd9..00000000 --- a/app/src/main/assets/lottie/code_invite_success.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"4.6.9","fr":60,"ip":0,"op":230,"w":220,"h":220,"nm":"Intro3","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Checker Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[131.817,171.725,0]},"a":{"a":0,"k":[22.562,22.633,0]},"s":{"a":1,"k":[{"i":{"x":[0.5,0.5,0.5],"y":[1,1,0.5]},"o":{"x":[0.84,0.84,0.84],"y":[0,0,0.84]},"n":["0p5_1_0p84_0","0p5_1_0p84_0","0p5_0p5_0p84_0p84"],"t":158,"s":[0,0,100],"e":[130,130,100]},{"i":{"x":[0.5,0.5,0.5],"y":[1,1,0.5]},"o":{"x":[0.84,0.84,0.84],"y":[0,0,0.84]},"n":["0p5_1_0p84_0","0p5_1_0p84_0","0p5_0p5_0p84_0p84"],"t":176,"s":[130,130,100],"e":[100,100,100]},{"t":183}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-7.643,1.576],[-2.486,5.923],[7.643,-5.923]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":1.991},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[22.967,22.739],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-12.322,0],[0,0],[0,-12.323],[0,0],[12.322,0],[0,12.322],[0,0]],"o":[[0,0],[12.322,0],[0,0],[0,12.322],[-12.322,0],[0,0],[0,-12.323]],"v":[[-0.001,-22.383],[-0.001,-22.383],[22.312,-0.071],[22.312,0.07],[-0.001,22.383],[-22.312,0.07],[-22.312,-0.071]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0,0.639,0.231,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[22.562,22.633],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"P1 Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":76,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":140,"s":[0],"e":[100]},{"t":143}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[78.828,132.057,0]},"a":{"a":0,"k":[1.83,1.816,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.452,-1.566],[0.253,-0.406],[1.165,-1.143],[1.579,-0.389],[0.495,-0.001],[1.579,0.389],[1.141,1.161],[0.253,0.423],[0.445,1.566],[-0.419,1.566],[-0.236,0.423],[-1.124,1.167],[-1.579,0.381],[-0.501,-0.007],[-1.57,-0.38],[-1.148,-1.143],[-0.227,-0.406],[-0.419,-1.566]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[1.83,1.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"P2 Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":127,"s":[0],"e":[100]},{"t":130}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[74.772,132.057,0]},"a":{"a":0,"k":[1.83,1.816,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.452,-1.566],[0.253,-0.406],[1.165,-1.143],[1.579,-0.389],[0.495,-0.001],[1.579,0.389],[1.141,1.161],[0.253,0.423],[0.445,1.566],[-0.419,1.566],[-0.236,0.423],[-1.124,1.167],[-1.579,0.381],[-0.501,-0.007],[-1.57,-0.38],[-1.148,-1.143],[-0.227,-0.406],[-0.419,-1.566]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[1.83,1.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"P2 Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":119,"s":[0],"e":[100]},{"t":122}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[70.715,132.057,0]},"a":{"a":0,"k":[1.829,1.816,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.452,-1.566],[0.253,-0.406],[1.165,-1.143],[1.579,-0.389],[0.493,-0.001],[1.579,0.389],[1.139,1.161],[0.253,0.423],[0.443,1.566],[-0.419,1.566],[-0.236,0.423],[-1.124,1.167],[-1.579,0.381],[-0.501,-0.007],[-1.572,-0.38],[-1.148,-1.143],[-0.229,-0.406],[-0.419,-1.566]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[1.829,1.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"p3 Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[0],"e":[100]},{"t":112}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[66.659,132.057,0]},"a":{"a":0,"k":[1.829,1.816,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.452,-1.566],[0.253,-0.406],[1.165,-1.143],[1.579,-0.389],[0.493,-0.001],[1.579,0.389],[1.139,1.161],[0.253,0.423],[0.443,1.566],[-0.419,1.566],[-0.236,0.423],[-1.124,1.167],[-1.579,0.381],[-0.503,-0.007],[-1.572,-0.38],[-1.148,-1.143],[-0.229,-0.406],[-0.419,-1.566]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[1.829,1.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"P4 Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":87,"s":[0],"e":[100]},{"t":92}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[62.601,132.057,0]},"a":{"a":0,"k":[1.829,1.816,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.452,-1.566],[0.254,-0.406],[1.165,-1.143],[1.579,-0.389],[0.495,-0.001],[1.579,0.389],[1.141,1.161],[0.254,0.423],[0.445,1.566],[-0.419,1.566],[-0.236,0.423],[-1.124,1.167],[-1.579,0.381],[-0.501,-0.007],[-1.57,-0.38],[-1.148,-1.143],[-0.227,-0.406],[-0.419,-1.566]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[1.829,1.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"p5 Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":76,"s":[2],"e":[100]},{"t":80}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[58.545,132.057,0]},"a":{"a":0,"k":[1.829,1.816,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.452,-1.566],[0.253,-0.406],[1.165,-1.143],[1.579,-0.389],[0.495,-0.001],[1.579,0.389],[1.141,1.161],[0.253,0.423],[0.445,1.566],[-0.419,1.566],[-0.236,0.423],[-1.124,1.167],[-1.579,0.381],[-0.501,-0.007],[-1.57,-0.38],[-1.148,-1.143],[-0.227,-0.406],[-0.419,-1.566]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[1.829,1.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"Phone Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[68.515,144.03,0]},"a":{"a":0,"k":[29.842,56.541,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.469,-0.691],[6.469,-0.691],[6.469,0.691],[-6.469,0.691]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[29.694,60.956],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.146,0],[0,0],[0,-1.145],[0,0],[1.145,0],[0,0],[0,1.145],[0,0]],"o":[[0,0],[1.145,0],[0,0],[0,1.145],[0,0],[-1.146,0],[0,0],[0,-1.145]],"v":[[-16.583,-4.144],[16.583,-4.144],[18.656,-2.069],[18.656,2.07],[16.583,4.144],[-16.583,4.144],[-18.656,2.07],[-18.656,-2.069]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0,0.639,0.231,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[30.039,60.955],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.747,-0.691],[11.747,-0.691],[11.747,0.691],[-11.747,0.691]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.792,0.776,0.745,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[23.13,36.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-18.657,-4.488],[18.657,-4.488],[18.657,4.488],[-18.657,4.488]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.878,0.878,0.878,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[30.04,44.729],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.735,0],[0,0],[0,-0.735],[0.735,0],[0,0],[0,0.735]],"o":[[0,0],[0.735,0],[0,0.735],[0,0],[-0.735,0],[0,-0.735]],"v":[[-4.637,-1.331],[4.637,-1.331],[5.969,-0.001],[4.637,1.331],[-4.637,1.331],[-5.969,-0.001]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.49,0.451,0.424,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[29.842,6.649],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.838,0],[0,0],[0,-1.838],[1.838,0],[0,0],[0,1.838]],"o":[[0,0],[1.838,0],[0,1.838],[0,0],[-1.838,0],[0,-1.838]],"v":[[-1.313,-3.327],[1.314,-3.327],[4.641,-0.001],[1.314,3.327],[-1.313,3.327],[-4.641,-0.001]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.49,0.451,0.424,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":1.327},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[29.179,105.104],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.205,0],[0,0],[0,-2.204],[2.205,0],[0,0],[0,2.204]],"o":[[0,0],[2.205,0],[0,2.204],[0,0],[-2.205,0],[0,-2.204]],"v":[[-1.313,-3.991],[1.314,-3.991],[5.305,0],[1.314,3.991],[-1.313,3.991],[-5.305,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.608,0.608,0.608,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[29.178,105.104],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-24.536,-43.24],[24.536,-43.24],[24.536,43.24],[-24.536,43.24]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.592,0.592,0.592,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":1.327},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[29.842,55.211],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":3,"cix":2,"ix":8,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.665,0],[0,0],[0,-3.664],[0,0],[3.665,0],[0,0],[0,3.665],[0,0]],"o":[[0,0],[3.665,0],[0,0],[0,3.665],[0,0],[-3.665,0],[0,0],[0,-3.664]],"v":[[-21.879,-55.215],[21.879,-55.215],[28.515,-48.579],[28.515,48.579],[21.879,55.215],[-21.879,55.215],[-28.515,48.579],[-28.515,-48.579]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.588,0.588,0.588,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":1.327},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.792,0.776,0.745,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[29.842,56.541],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":3,"cix":2,"ix":9,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"Cupon Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.57],"y":[1]},"o":{"x":[0.16],"y":[0]},"n":["0p57_1_0p16_0"],"t":14,"s":[60],"e":[-3]},{"i":{"x":[0.51],"y":[1]},"o":{"x":[0.152],"y":[0]},"n":["0p51_1_0p152_0"],"t":44,"s":[-3],"e":[0]},{"t":72}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.16,"y":0},"n":"0p833_1_0p16_0","t":14,"s":[93.826,135.572,0],"e":[113,84.635,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.16,"y":0},"n":"0p833_1_0p16_0","t":44,"s":[113,84.635,0],"e":[113.826,85.572,0],"to":[0,0,0],"ti":[0,0,0]},{"t":72}]},"a":{"a":0,"k":[41.867,23.511,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[24.029,3.622],[22.827,6.008],[25.297,5.013],[25.696,6.924],[23.08,7.049],[25.178,8.615],[23.714,9.996],[22.278,7.807],[21.932,10.414],[20.061,9.842],[21.216,7.482],[18.796,8.512],[18.328,6.501],[20.926,6.372],[18.852,4.852],[20.276,3.478],[21.784,5.689],[22.139,3.045]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[15.224,0.931],[14.022,3.316],[16.491,2.322],[16.891,4.232],[14.275,4.357],[16.374,5.924],[14.909,7.305],[13.473,5.115],[13.128,7.723],[11.257,7.15],[12.411,4.79],[9.991,5.821],[9.523,3.81],[12.121,3.68],[10.048,2.161],[11.47,0.786],[12.979,2.997],[13.335,0.353]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.42,-1.761],[5.217,0.625],[7.686,-0.371],[8.087,1.541],[5.47,1.666],[7.569,3.232],[6.104,4.613],[4.669,2.423],[4.323,5.032],[2.452,4.459],[3.606,2.099],[1.186,3.129],[0.718,1.118],[3.316,0.988],[1.242,-0.533],[2.666,-1.906],[4.175,0.306],[4.53,-2.339]],"c":true}},"nm":"Path 3","mn":"ADBE Vector Shape - Group"},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-2.385,-4.453],[-3.587,-2.067],[-1.118,-3.062],[-0.718,-1.15],[-3.334,-1.026],[-1.236,0.54],[-2.7,1.921],[-4.137,-0.27],[-4.482,2.34],[-6.353,1.768],[-5.199,-0.593],[-7.619,0.437],[-8.087,-1.574],[-5.489,-1.704],[-7.563,-3.223],[-6.139,-4.597],[-4.631,-2.386],[-4.275,-5.031]],"c":true}},"nm":"Path 4","mn":"ADBE Vector Shape - Group"},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-11.19,-7.145],[-12.392,-4.759],[-9.923,-5.755],[-9.523,-3.842],[-12.139,-3.718],[-10.04,-2.152],[-11.505,-0.771],[-12.942,-2.96],[-13.286,-0.352],[-15.158,-0.924],[-14.003,-3.285],[-16.424,-2.255],[-16.891,-4.266],[-14.293,-4.396],[-16.367,-5.916],[-14.944,-7.289],[-13.435,-5.078],[-13.08,-7.722]],"c":true}},"nm":"Path 5","mn":"ADBE Vector Shape - Group"},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-19.995,-9.837],[-21.197,-7.451],[-18.727,-8.447],[-18.328,-6.535],[-20.944,-6.41],[-18.845,-4.844],[-20.31,-3.464],[-21.746,-5.652],[-22.091,-3.044],[-23.963,-3.617],[-22.808,-5.977],[-25.229,-4.947],[-25.696,-6.958],[-23.098,-7.089],[-25.172,-8.607],[-23.748,-9.981],[-22.241,-7.77],[-21.885,-10.414]],"c":true}},"nm":"Path 6","mn":"ADBE Vector Shape - Group"},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"},{"ty":"fl","c":{"a":0,"k":[0.247,0.212,0.192,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[41.941,23.286],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":8,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.73,-0.223],[0,0],[0.224,-0.73],[0,0],[0.731,0.223],[0,0],[-0.224,0.73],[0,0]],"o":[[0,0],[0.73,0.223],[0,0],[-0.224,0.73],[0,0],[-0.73,-0.224],[0,0],[0.224,-0.73]],"v":[[-32.681,-21.906],[39.344,0.115],[40.261,1.841],[34.408,20.988],[32.681,21.906],[-39.344,-0.114],[-40.261,-1.841],[-34.408,-20.988]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.588,0.588,0.588,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":1.382},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.792,0.776,0.745,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[41.867,23.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":230,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt b/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt index 5e5faa94..ef1f4723 100644 --- a/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt +++ b/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt @@ -5,7 +5,9 @@ import com.crashlytics.android.Crashlytics import com.crashlytics.android.answers.Answers import com.crashlytics.android.answers.PurchaseEvent import com.crashlytics.android.core.CrashlyticsCore +import com.fastaccess.App import com.fastaccess.BuildConfig +import com.google.firebase.analytics.FirebaseAnalytics import io.fabric.sdk.android.Fabric import java.math.BigDecimal import java.math.RoundingMode diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt index d0b50a9e..e94658a0 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumActivity.kt @@ -1,24 +1,22 @@ package com.fastaccess.ui.modules.main.premium -import android.animation.Animator +import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.Intent import android.os.Bundle -import androidx.transition.TransitionManager import android.view.View import android.widget.Button -import android.widget.EditText import android.widget.FrameLayout import android.widget.TextView +import androidx.transition.TransitionManager import butterknife.BindView import butterknife.OnClick -import butterknife.OnEditorAction -import com.airbnb.lottie.LottieAnimationView import com.fastaccess.BuildConfig import com.fastaccess.R -import com.fastaccess.helper.* -import com.fastaccess.provider.fabric.FabricProvider +import com.fastaccess.helper.AppHelper +import com.fastaccess.helper.Logger +import com.fastaccess.helper.RxHelper import com.fastaccess.ui.base.BaseActivity import com.fastaccess.ui.modules.main.donation.DonateActivity import com.miguelbcr.io.rx_billing_service.RxBillingService @@ -30,12 +28,8 @@ import io.reactivex.disposables.Disposable * Created by kosh on 13/07/2017. */ class PremiumActivity : BaseActivity(), PremiumMvp.View { - - @BindView(R.id.editText) lateinit var editText: EditText @BindView(R.id.viewGroup) lateinit var viewGroup: FrameLayout @BindView(R.id.progressLayout) lateinit var progressLayout: View - @BindView(R.id.successActivationView) lateinit var successActivationView: LottieAnimationView - @BindView(R.id.successActivationHolder) lateinit var successActivationHolder: View @BindView(R.id.proPrice) lateinit var proPriceText: TextView @BindView(R.id.enterprisePrice) lateinit var enterpriseText: TextView @BindView(R.id.buyAll) lateinit var buyAll: Button @@ -69,55 +63,38 @@ class PremiumActivity : BaseActivity(), Premi @OnClick(R.id.buyEnterprise) fun onBuyEnterprise() { if (!isGoogleSupported()) return val price = enterpriseText.tag as? Long? - DonateActivity.Companion.start(this, enterpriseKey, price, enterpriseText.text.toString()) - } - - @OnClick(R.id.unlock) fun onUnlock() { - if (!isGoogleSupported()) return - if (BuildConfig.DEBUG) { - PrefGetter.setProItems() - PrefGetter.setEnterpriseItem() - onSuccessfullyActivated() - return - } - val isEmpty = editText.text.isNullOrBlank() - editText.error = if (isEmpty) getString(R.string.required_field) else null - if (!isEmpty) { - presenter.onCheckPromoCode(editText.text.toString()) - } - } - - @OnEditorAction(R.id.editText) fun onEditorAction(): Boolean { - onUnlock() - return true + DonateActivity.start(this, enterpriseKey, price, enterpriseText.text.toString()) } @OnClick(R.id.close) fun onClose() = finish() + @SuppressLint("CheckResult") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) buyAll.text = getString(R.string.purchase_all).replace("%price%", "$7.99") - RxHelper.getObservable(RxBillingService.getInstance(this, BuildConfig.DEBUG) + RxHelper.getObservable( + RxBillingService.getInstance(this, BuildConfig.DEBUG) .getSkuDetails(ProductType.IN_APP, arrayListOf(enterpriseKey, proKey, allFeaturesKey)) - .toObservable()) - .flatMap { Observable.fromIterable(it) } - .subscribe({ - Logger.e(it.sku(), it.price(), it.priceCurrencyCode(), it.priceAmountMicros()) - when (it.sku()) { - enterpriseKey -> { - enterpriseText.text = it.price() - enterpriseText.tag = it.priceAmountMicros() - } - proKey -> { - proPriceText.text = it.price() - proPriceText.tag = it.priceAmountMicros() - } - allFeaturesKey -> { - buyAll.text = getString(R.string.purchase_all).replace("%price%", it.price()) - buyAll.tag = it.priceAmountMicros() - } + .toObservable() + ) + .flatMap { Observable.fromIterable(it) } + .subscribe({ + Logger.e(it.sku(), it.price(), it.priceCurrencyCode(), it.priceAmountMicros()) + when (it.sku()) { + enterpriseKey -> { + enterpriseText.text = it.price() + enterpriseText.tag = it.priceAmountMicros() } - }, { t -> t.printStackTrace() }) + proKey -> { + proPriceText.text = it.price() + proPriceText.tag = it.priceAmountMicros() + } + allFeaturesKey -> { + buyAll.text = getString(R.string.purchase_all).replace("%price%", it.price()) + buyAll.tag = it.priceAmountMicros() + } + } + }, { t -> t.printStackTrace() }) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -133,24 +110,7 @@ class PremiumActivity : BaseActivity(), Premi finish() } - override fun onSuccessfullyActivated() { - ViewHelper.hideKeyboard(editText) - hideProgress() - successActivationHolder.visibility = View.VISIBLE - FabricProvider.logPurchase(InputHelper.toString(editText)) - successActivationView.addAnimatorListener(object : Animator.AnimatorListener { - override fun onAnimationRepeat(p0: Animator?) {} - override fun onAnimationEnd(p0: Animator?) { - showMessage(R.string.success, R.string.success) - successResult() - } - - override fun onAnimationCancel(p0: Animator?) {} - - override fun onAnimationStart(p0: Animator?) {} - }) - successActivationView.playAnimation() - } + override fun onSuccessfullyActivated() {} override fun onNoMatch() { hideProgress() @@ -158,7 +118,6 @@ class PremiumActivity : BaseActivity(), Premi } override fun showProgress(resId: Int) { - ViewHelper.hideKeyboard(editText) TransitionManager.beginDelayedTransition(viewGroup) progressLayout.visibility = View.VISIBLE } diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt index 90945382..f341907f 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt @@ -6,6 +6,7 @@ import android.os.Bundle import androidx.viewpager.widget.ViewPager import android.view.MenuItem import android.view.View +import android.widget.ProgressBar import butterknife.BindView import com.airbnb.lottie.LottieAnimationView import com.evernote.android.state.State @@ -28,7 +29,7 @@ import com.fastaccess.ui.widgets.CardsPagerTransformerBasic class ProjectPagerActivity : BaseActivity(), ProjectPagerMvp.View { @BindView(R.id.pager) lateinit var pager: ViewPager - @BindView(R.id.loading) lateinit var loading: LottieAnimationView + @BindView(R.id.loading) lateinit var loading: ProgressBar @State var isProgressShowing = false override fun canBack(): Boolean = true @@ -61,12 +62,10 @@ class ProjectPagerActivity : BaseActivity - + android:paddingTop="@dimen/spacing_normal" + android:paddingBottom="@dimen/spacing_normal"> + android:paddingBottom="@dimen/spacing_micro" + android:src="@drawable/ic_back" /> + android:text="@string/fasthub_premium_features" /> @@ -55,30 +54,30 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingBottom="@dimen/spacing_normal" - android:paddingTop="@dimen/spacing_normal"> + android:paddingTop="@dimen/spacing_normal" + android:paddingBottom="@dimen/spacing_normal"> + android:paddingTop="@dimen/spacing_micro" + android:paddingBottom="@dimen/spacing_micro"> + android:src="@drawable/ic_group" /> + android:paddingStart="@dimen/keyline_1" + android:paddingEnd="@dimen/spacing_xs_large"> + android:textColor="@color/search_tab_highlighter" /> + android:textColor="@color/material_red_700" + tools:text="$ 5.99" /> @@ -103,9 +102,9 @@ style="@style/Base.TextAppearance.AppCompat.Small" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingEnd="@dimen/spacing_xs_large" android:paddingStart="@dimen/keyline_1" - android:text="@string/enterprise_pro_description"/> + android:paddingEnd="@dimen/spacing_xs_large" + android:text="@string/enterprise_pro_description" /> + android:drawableEnd="@drawable/ic_arrow_right" + android:drawablePadding="@dimen/spacing_normal" + android:drawableTint="@color/material_green_700" + android:text="@string/purchase" + android:textAllCaps="false" + android:textColor="@color/material_green_700" /> @@ -122,30 +127,30 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingBottom="@dimen/spacing_normal" - android:paddingTop="@dimen/spacing_normal"> + android:paddingTop="@dimen/spacing_normal" + android:paddingBottom="@dimen/spacing_normal"> + android:paddingTop="@dimen/spacing_micro" + android:paddingBottom="@dimen/spacing_micro"> + android:src="@drawable/ic_repo" /> + android:paddingStart="@dimen/keyline_1" + android:paddingEnd="@dimen/spacing_xs_large"> + android:textColor="@color/search_tab_highlighter" /> + android:textColor="@color/material_red_700" + tools:text="$ 3.99" /> @@ -169,9 +174,9 @@ style="@style/Base.TextAppearance.AppCompat.Small" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingEnd="@dimen/spacing_xs_large" android:paddingStart="@dimen/keyline_1" - android:text="@string/pro_features_list"/> + android:paddingEnd="@dimen/spacing_xs_large" + android:text="@string/pro_features_list" /> - - - - - - - - - - - - - - - - - - - + android:drawableEnd="@drawable/ic_arrow_right" + android:drawablePadding="@dimen/spacing_normal" + android:drawableTint="@color/material_green_700" + android:text="@string/purchase" + android:textAllCaps="false" + android:textColor="@color/material_green_700" /> + android:textAppearance="@style/TextAppearance.AppCompat.Title" + android:textColor="?colorAccent" /> @@ -275,27 +219,7 @@ - - - - - - + android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml b/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml index 7c421f19..75d05415 100644 --- a/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml +++ b/app/src/main/res/layouts/main_layouts/layout/projects_activity_layout.xml @@ -1,8 +1,8 @@ - @@ -13,7 +13,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - + + android:layout_height="match_parent" /> - + tools:visibility="visible" /> - + \ No newline at end of file From 21e3663315a570fc59508e6b530f6fa86d960d18 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Sun, 29 Dec 2019 12:38:29 +0100 Subject: [PATCH 57/59] release 4.7.3 --- .../main/java/com/fastaccess/provider/fabric/FabricProvider.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt b/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt index ef1f4723..5e5faa94 100644 --- a/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt +++ b/app/src/main/java/com/fastaccess/provider/fabric/FabricProvider.kt @@ -5,9 +5,7 @@ import com.crashlytics.android.Crashlytics import com.crashlytics.android.answers.Answers import com.crashlytics.android.answers.PurchaseEvent import com.crashlytics.android.core.CrashlyticsCore -import com.fastaccess.App import com.fastaccess.BuildConfig -import com.google.firebase.analytics.FirebaseAnalytics import io.fabric.sdk.android.Fabric import java.math.BigDecimal import java.math.RoundingMode From 990e150e7a83e9014835fbe803d30d01ed9016e2 Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Sun, 29 Dec 2019 12:40:05 +0100 Subject: [PATCH 58/59] release 4.7.3 --- .../ui/modules/repos/projects/details/ProjectPagerActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt index f341907f..ba19c2d4 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/projects/details/ProjectPagerActivity.kt @@ -8,7 +8,6 @@ import android.view.MenuItem import android.view.View import android.widget.ProgressBar import butterknife.BindView -import com.airbnb.lottie.LottieAnimationView import com.evernote.android.state.State import com.fastaccess.R import com.fastaccess.data.dao.FragmentPagerAdapterModel From fb7053da2079b624d6129ef81370a9d5774bcb9a Mon Sep 17 00:00:00 2001 From: k0shk0sh Date: Sat, 4 Jan 2020 12:18:49 +0100 Subject: [PATCH 59/59] download apk using chrome --- .../com/fastaccess/provider/rest/RestProvider.java | 10 ++++++++++ .../provider/timeline/handler/QuoteHandler.java | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java index 1c7158e2..2723e8ce 100644 --- a/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java +++ b/app/src/main/java/com/fastaccess/provider/rest/RestProvider.java @@ -1,7 +1,9 @@ package com.fastaccess.provider.rest; +import android.app.Activity; import android.app.DownloadManager; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.os.Environment; import android.text.TextUtils; @@ -23,6 +25,7 @@ import com.fastaccess.data.service.RepoService; import com.fastaccess.data.service.ReviewService; import com.fastaccess.data.service.SearchService; import com.fastaccess.data.service.UserRestService; +import com.fastaccess.helper.ActivityHelper; import com.fastaccess.helper.InputHelper; import com.fastaccess.helper.PrefGetter; import com.fastaccess.provider.rest.converters.GithubResponseConverter; @@ -98,6 +101,13 @@ public class RestProvider { try { if (InputHelper.isEmpty(url)) return; boolean isEnterprise = LinkParserHelper.isEnterprise(url); + if (url.endsWith(".apk")) { + Activity activity = ActivityHelper.getActivity(context); + if (activity != null) { + ActivityHelper.startCustomTab(activity, url); + return; + } + } Uri uri = Uri.parse(url); DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(uri); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java index 1ead0e21..b1492f0f 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/QuoteHandler.java @@ -1,6 +1,7 @@ package com.fastaccess.provider.timeline.handler; import androidx.annotation.ColorInt; + import android.text.SpannableStringBuilder; import com.zzhoujay.markdown.style.MarkDownQuoteSpan; @@ -21,6 +22,10 @@ import lombok.AllArgsConstructor; @Override public void handleTagNode(TagNode node, SpannableStringBuilder builder, int start, int end) { - builder.setSpan(new MarkDownQuoteSpan(color), start + 1, builder.length(), 33); + try { + builder.setSpan(new MarkDownQuoteSpan(color), start + 1, builder.length(), 33); + } catch (IndexOutOfBoundsException e) { + builder.setSpan(new MarkDownQuoteSpan(color), start, builder.length(), 33); + } } }