From c270b13296f2ee6acd69d861404dd9d2deeb91dc Mon Sep 17 00:00:00 2001 From: Antic1tizen One Date: Thu, 12 Jan 2017 22:01:19 +0400 Subject: [PATCH] Add CI smoke build, fix Gradle Lint warnings, fixes #451 (#504) - Added CI smoke build config that spawns a build for pull-requests - Removed extra translations that have no base strings anymore - Added skip MissingTranslation option to lint as there are missing strings that are not filled in Transifex --- .travis.yml | 31 ++++++++++++++++++ build.gradle | 4 +++ res/values-nl/translatable.xml | 2 -- res/values-no/translatable.xml | 11 ------- res/values-sk/translatable.xml | 11 ------- res/values-uk/translatable.xml | 23 ------------- res/values/untranslatable.xml | 2 +- .../android/vanilla/FullPlaybackActivity.java | 2 +- .../android/vanilla/LibraryActivity.java | 4 +-- .../android/vanilla/PlaylistDialog.java | 29 +++++++++++------ .../android/vanilla/PlaylistInputDialog.java | 32 ++++++++++++------- .../vanilla/SlidingPlaybackActivity.java | 4 +-- 12 files changed, 80 insertions(+), 75 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..5be8ef01 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,31 @@ +language: android + +jdk: + - oraclejdk8 + +env: + global: + # install timeout in minutes (2 minutes by default) + - ADB_INSTALL_TIMEOUT=8 + +android: + components: + # use the latest revision of Android SDK Tools + - platform-tools + - tools + + # The BuildTools version used + - build-tools-24.0.2 + + # The SDK version used + - android-24 + +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ + +script: + - ./gradlew --info assembleRelease \ No newline at end of file diff --git a/build.gradle b/build.gradle index c965c84c..338a3bba 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,10 @@ allprojects { apply plugin: 'com.android.application' android { + lintOptions { + disable 'MissingTranslation' + } + compileSdkVersion 24 buildToolsVersion "24.0.2" diff --git a/res/values-nl/translatable.xml b/res/values-nl/translatable.xml index b2decde1..2a74427c 100644 --- a/res/values-nl/translatable.xml +++ b/res/values-nl/translatable.xml @@ -2,7 +2,6 @@ Instellingen - Bibliotheek Willekeurig Speel Wijzig @@ -15,7 +14,6 @@ Artiesten Albums Bestanden - Geen Onbekend Speel alles Naam diff --git a/res/values-no/translatable.xml b/res/values-no/translatable.xml index 1e7b6da5..5066784e 100644 --- a/res/values-no/translatable.xml +++ b/res/values-no/translatable.xml @@ -4,14 +4,12 @@ Vanilla Music Ingen låter finnes på enheten. Instillinger - Bibliotek Tilfeldig aktivert Kunne ikke laste låt %s. Den kan være skadet eller mangler. Kø ryddet. Velg Spilleliste Navn Lage Overskriv - Avbryt Spill Endre @@ -27,34 +25,25 @@ Låter Spillelister Gjangre - Ingen Ukjent Soill Alt Kø Alt Alle Låter - Volum Bruk Hodetelefon Knapper Kun Ekstern Lydutgang Pause Når Frakoblet Pause når hodetelefonen er frakoblet. - Spill Når Tilkoblet - Spill når hodetelefonen er tilkoblet. (Fungerer bare når tjenesten kjører.) Varselmodus Varsel Handling - Inverter Varsling Farge - Bruk hvit tekst i stedet for svart tekst Visningsmodus Sveip Opp Handling Sveip Ned Handling Cover Tapp Handling Lang Cover Trykk Handling - Medieknapper i Bibliotek - Vis låten som spilles og mediekontrollene i biblioteket Standard Handling Aktiver Tomgang Når aktiv, blir avspillingen stoppet etter en gitt periode med inaktivitet Tomgang - Deaktiver Cover bilde Dobbeltapp Widget Dobbeltapping på 1x1 widget vil åpne spilleren. Forvent en 400ms forsinkelse før widgeten reagerer på handlingen. Bruk ScrobbleDroid API diff --git a/res/values-sk/translatable.xml b/res/values-sk/translatable.xml index d1a62d35..b418ed83 100644 --- a/res/values-sk/translatable.xml +++ b/res/values-sk/translatable.xml @@ -4,14 +4,12 @@ Vanilla Music V zariadení neboli nájdené žiadne skladby. Nastavenia - Knižnica Náhodný výber zapnutý. Načítanie skladby %s zlyhalo. Môže byť poškodená, alebo chýba. Zoznam vymazaný. Vyberte názov zoznamu skladieb Vytvoriť Prepísať - Zrušiť Zaradiť do zoznamu Prehrať Upraviť @@ -27,34 +25,25 @@ Skladby Zoznamy skladieb Žánre - Nič Neznáme Prehrať všetko Pridať do zoznamu všetko Všetky skladby - Hlasitosť Použiť ovládanie náhlavnej súpravy Iba externý výstup Pozastaviť pri odpojení Pozastaví prehrávanie keď odpojíte sluchátka. - Prehrať po pripojení - Spustí prehrávanie keď zapojíte sluchátka. Funguje iba keď beží služba. Režim upozornení Akcia upozornenia - Invertovať farbu oznámenia - Použije biely text namiesto čierneho. Režim zobrazenia Akcia prejedním prstu nahor Prejdením prstom nadol Akcia pri ťuknutí na obal Akcia pri podržaní na obale - Ovládanie v knižnici - V knižnici zobrazí aktuálne prehrávanú skladbu a ovládanie prehrávania. Predvolená akcia Povoliť časový limit nečinnosti Keď je povolené, prehrávanie sa zastaví po danom čase nečinnosti. Časový limit nečinnosti - Vypnúť obal albumu Dvojité ťuknutie na miniaplikáciu Dvojité ťuknutie na 1×1 miniaplikáciu otvorí prehrávač. Vytvorí oneskorenie 0,4 sekúnd pred tým, ako miniaplikácia reaguje na akciu. Použiť ScrobbleDroid API diff --git a/res/values-uk/translatable.xml b/res/values-uk/translatable.xml index 67f2cdf1..d96bac9e 100644 --- a/res/values-uk/translatable.xml +++ b/res/values-uk/translatable.xml @@ -5,7 +5,6 @@ На вашому пристрої не знайдено пісень. Не вибрано пісень. Додайте їх з бібліотеки або натисніть тут для додавання любих. Параметри - Бібліотека Не відтворювати у випадковому порядку Випадкові пісні Випадкові альбоми @@ -30,7 +29,6 @@ Введіть назву списку Створити Перезаписати - Скасувати Видалити список %s? Видалити з черги Грати @@ -45,9 +43,7 @@ Знайти Виконано Усунути - Очистити пошук Видали з черги при відтворенні; Відтворити при зупиненні - %s видалено. Не вдалося видалити %s. Виконавець Альбоми @@ -55,7 +51,6 @@ Списки Жанри Файли - Немає Невідомий Відтворити все Очистити чергу @@ -70,12 +65,7 @@ Виконавець, альбом, номер пісні Виконавець, альбом, назва Виконавець, рік - За зростанням - За спаданням - %s (призупинено) Аудіо - Черга - Гучність Гарнітура/Bluetooth керування Це потрібно для контролю на екрані блокування Android 4.0 і вище. Звуковий сигнал при управлінні з гарнітури @@ -84,13 +74,9 @@ Заборонити відтворення музики через гучномовець. Призупиняти при від’єднанні Призупиняє при від’єднанні навушників. - Продовжувати при приєднанні - Продовжувати при приєднанні навушників (Спрацює лише при запущеному сервісі) Сповіщення Режим сповіщення Дія сповіщення - Інвертувати колір сповіщення - Показувати білий текст замість чорного Екран відтворення Відкривати при запуску Показувати екран відтворення при запуску @@ -100,8 +86,6 @@ Дія при натиску на обкладинку Дія при утриманні на обкладинці Екран бібліотеки - Елементи керування в бібліотеці - Показувати поточну пісню та елементи керування в бібліотеці Стандартна дія Стандартна дія списку Струс акселерометра @@ -115,18 +99,12 @@ Зупиняти при неактивності Коли увімкнено, відтворення буде зупинено після певного періоду бездіяльності Час простою - Вимкнути обкладинки - Не завантажує обкладинки у всій програмі Віджет з подвійним натиском ПОдвійний тап по віджеті 1х1 відкриє плеєр. Віджет чекає 400мс перед реагуванням на дію. Використовувати ScrobbleDroid API Відсилати до Last.FM через ScrobbleDroid або простим Scrobbler Last.FM Емулювати звичайні події Посилати події, які відсилає стандартний плеєр для роботи інших віджетів та ін. - Оновити бібліотеку - Натисніть для сканування зовнішнього сховища - Сканування… - Сканування закінчено. Натисніть для сканування ще раз. Про програму Порядок вкладок Налаштуйте порядок та видимість тегів у бібліотеці @@ -153,7 +131,6 @@ Видалити альбом з черги Видалити виконавця з черги Видалити жанр з черги - Очистити чергу Перемкнути відображення елементів керування 1 пісня грає. diff --git a/res/values/untranslatable.xml b/res/values/untranslatable.xml index 097713ee..fa7e4fad 100644 --- a/res/values/untranslatable.xml +++ b/res/values/untranslatable.xml @@ -21,7 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + diff --git a/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java index 152098bd..57126bc2 100644 --- a/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/FullPlaybackActivity.java @@ -349,7 +349,7 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity Intent intent = new Intent(); intent.putExtra("type", MediaUtils.TYPE_SONG); intent.putExtra("id", song.id); - PlaylistDialog dialog = new PlaylistDialog(this, intent, null); + PlaylistDialog dialog = PlaylistDialog.newInstance(this, intent, null); dialog.show(getFragmentManager(), "PlaylistDialog"); } break; diff --git a/src/ch/blinkenlights/android/vanilla/LibraryActivity.java b/src/ch/blinkenlights/android/vanilla/LibraryActivity.java index f14c78d2..5f87701a 100644 --- a/src/ch/blinkenlights/android/vanilla/LibraryActivity.java +++ b/src/ch/blinkenlights/android/vanilla/LibraryActivity.java @@ -754,7 +754,7 @@ public class LibraryActivity case CTX_MENU_RENAME_PLAYLIST: { final String playlistName = intent.getStringExtra("title"); final long playlistId = intent.getLongExtra("id", -1); - PlaylistInputDialog dialog = new PlaylistInputDialog(new PlaylistInputDialog.Callback() { + PlaylistInputDialog dialog = PlaylistInputDialog.newInstance(new PlaylistInputDialog.Callback() { @Override public void onSuccess(String input) { PlaylistTask playlistTask = new PlaylistTask(playlistId, input); @@ -812,7 +812,7 @@ public class LibraryActivity break; case CTX_MENU_ADD_TO_PLAYLIST: long id = intent.getLongExtra("id", LibraryAdapter.INVALID_ID); - PlaylistDialog plDialog = new PlaylistDialog(this, intent, (id == LibraryAdapter.HEADER_ID ? (MediaAdapter)mCurrentAdapter : null)); + PlaylistDialog plDialog = PlaylistDialog.newInstance(this, intent, (id == LibraryAdapter.HEADER_ID ? (MediaAdapter)mCurrentAdapter : null)); plDialog.show(getFragmentManager(), "PlaylistDialog"); break; default: diff --git a/src/ch/blinkenlights/android/vanilla/PlaylistDialog.java b/src/ch/blinkenlights/android/vanilla/PlaylistDialog.java index f4dfaaab..ca637e06 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaylistDialog.java +++ b/src/ch/blinkenlights/android/vanilla/PlaylistDialog.java @@ -34,6 +34,24 @@ import android.os.Bundle; public class PlaylistDialog extends DialogFragment implements DialogInterface.OnClickListener { + /** + * Default constructor as required by Gradle Release Lint + */ + public PlaylistDialog() { + } + + /** + * Creates a new playlist dialog to assemble a playlist using an intent. + * Uses a static constructor method to satisfy Gradle Release Lint. + */ + public static PlaylistDialog newInstance(Callback callback, Intent intent, MediaAdapter allSource) { + PlaylistDialog pd = new PlaylistDialog(); + pd.mCallback = callback; + pd.mData = pd.new Data(); + pd.mData.sourceIntent = intent; + pd.mData.allSource = allSource; + return pd; + } /** * A class implementing our callback interface @@ -71,15 +89,6 @@ public class PlaylistDialog extends DialogFragment public MediaAdapter allSource; } - /** - * Creates a new playlist dialog to assemble a playlist using an intent - */ - PlaylistDialog(Callback callback, Intent intent, MediaAdapter allSource) { - mCallback = callback; - mData = new PlaylistDialog.Data(); - mData.sourceIntent = intent; - mData.allSource = allSource; - } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -112,7 +121,7 @@ public class PlaylistDialog extends DialogFragment public void onClick(DialogInterface dialog, int which) { switch (which) { case BUTTON_CREATE_PLAYLIST: - PlaylistInputDialog newDialog = new PlaylistInputDialog(new PlaylistInputDialog.Callback() { + PlaylistInputDialog newDialog = PlaylistInputDialog.newInstance(new PlaylistInputDialog.Callback() { @Override public void onSuccess(String input) { mData.id = -1; diff --git a/src/ch/blinkenlights/android/vanilla/PlaylistInputDialog.java b/src/ch/blinkenlights/android/vanilla/PlaylistInputDialog.java index cacf45c4..f6f06cb3 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaylistInputDialog.java +++ b/src/ch/blinkenlights/android/vanilla/PlaylistInputDialog.java @@ -37,6 +37,26 @@ import android.widget.EditText; public class PlaylistInputDialog extends DialogFragment implements DialogInterface.OnClickListener, TextWatcher { + /** + * Default constructor as required by Gradle Release Lint + */ + public PlaylistInputDialog() { + } + + /** + * Creates a new instance. + * Uses a static constructor method to satisfy Gradle Release Lint. + * @param callback the callback to call back + * @param initialText the initial value mEditText + * @param actionRes the label of the positive button + */ + public static PlaylistInputDialog newInstance(Callback callback, String initialText, int actionRes) { + PlaylistInputDialog pid = new PlaylistInputDialog(); + pid.mCallback = callback; + pid.mInitialText = initialText; + pid.mActionRes = actionRes; + return pid; + } public interface Callback { void onSuccess(String input); @@ -64,18 +84,6 @@ public class PlaylistInputDialog extends DialogFragment */ private AlertDialog mDialog; - /** - * Creates a new instance - * @param callback the callback to call back - * @param initialText the initial value mEditText - * @param actionRes the label of the positive button - */ - PlaylistInputDialog(Callback callback, String initialText, int actionRes) { - mCallback = callback; - mInitialText = initialText; - mActionRes = actionRes; - } - @Override public Dialog onCreateDialog(Bundle savedInstanceState) { mEditText = new EditText(getActivity()); diff --git a/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java index 634a5c21..eee4230c 100644 --- a/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java @@ -143,7 +143,7 @@ public class SlidingPlaybackActivity extends PlaybackActivity mSlidingView.hideSlide(); break; case MENU_SAVE_QUEUE: - PlaylistDialog dialog = new PlaylistDialog(this, null, null); + PlaylistDialog dialog = PlaylistDialog.newInstance(this, null, null); dialog.show(getFragmentManager(), "PlaylistDialog"); break; default: @@ -163,7 +163,7 @@ public class SlidingPlaybackActivity extends PlaybackActivity final Intent intent = item.getIntent(); switch (item.getItemId()) { case CTX_MENU_ADD_TO_PLAYLIST: { - PlaylistDialog dialog = new PlaylistDialog(this, intent, null); + PlaylistDialog dialog = PlaylistDialog.newInstance(this, intent, null); dialog.show(getFragmentManager(), "PlaylistDialog"); break; }