Skip to content

Commit edec758

Browse files
Merge pull request #260 from MihaiCristianCondrea/codex/add-icon-button-for-open-in-new
Convert lessons external link icon to icon button
2 parents 04c2f37 + 4a382b3 commit edec758

File tree

30 files changed

+51
-10
lines changed

30 files changed

+51
-10
lines changed

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.d4rk.androidtutorials.java.databinding.ItemAndroidStudioLessonBinding;
3535
import com.google.android.gms.ads.AdListener;
3636
import com.google.android.gms.ads.LoadAdError;
37+
import com.google.android.material.button.MaterialButton;
3738
import com.google.android.material.card.MaterialCardView;
3839
import com.google.android.material.shape.CornerFamily;
3940
import com.google.android.material.shape.ShapeAppearanceModel;
@@ -427,15 +428,15 @@ static class LessonHolder extends RecyclerView.ViewHolder {
427428
final AppCompatImageView icon;
428429
final MaterialTextView title;
429430
final MaterialTextView summary;
430-
final AppCompatImageView externalIcon;
431+
final MaterialButton externalButton;
431432

432433
LessonHolder(@NonNull ItemAndroidStudioLessonBinding binding) {
433434
super(binding.getRoot());
434435
card = binding.lessonCard;
435436
icon = binding.lessonIcon;
436437
title = binding.lessonTitle;
437438
summary = binding.lessonSummary;
438-
externalIcon = binding.lessonExternalIcon;
439+
externalButton = binding.lessonExternalIcon;
439440
}
440441

441442
void bind(Lesson lesson, boolean first, boolean last) {
@@ -452,7 +453,13 @@ void bind(Lesson lesson, boolean first, boolean last) {
452453
} else {
453454
summary.setVisibility(View.GONE);
454455
}
455-
externalIcon.setVisibility(lesson.opensInBrowser ? View.VISIBLE : View.GONE);
456+
boolean showExternalButton = lesson.opensInBrowser && lesson.intent != null;
457+
externalButton.setVisibility(showExternalButton ? View.VISIBLE : View.GONE);
458+
if (showExternalButton) {
459+
externalButton.setOnClickListener(v -> v.getContext().startActivity(lesson.intent));
460+
} else {
461+
externalButton.setOnClickListener(null);
462+
}
456463
itemView.setOnClickListener(v -> {
457464
if (lesson.intent != null) {
458465
v.getContext().startActivity(lesson.intent);

app/src/main/res/layout/item_android_studio_lesson.xml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,20 @@
4545
android:textAppearance="@style/TextAppearance.Material3.BodySmall" />
4646
</androidx.appcompat.widget.LinearLayoutCompat>
4747

48-
<androidx.appcompat.widget.AppCompatImageView
48+
<com.google.android.material.button.MaterialButton
4949
android:id="@+id/lesson_external_icon"
50-
android:layout_width="24dp"
51-
android:layout_height="24dp"
50+
style="@style/Widget.Material3.Button.IconButton"
51+
android:layout_width="wrap_content"
52+
android:layout_height="wrap_content"
5253
android:layout_marginStart="12dp"
53-
android:contentDescription="@null"
54-
android:importantForAccessibility="no"
55-
app:srcCompat="@drawable/ic_open_in_new"
56-
android:visibility="gone" />
54+
android:contentDescription="@string/lesson_open_in_browser"
55+
android:tooltipText="@string/lesson_open_in_browser"
56+
android:visibility="gone"
57+
android:text="@null"
58+
android:minHeight="0dp"
59+
android:minWidth="0dp"
60+
app:icon="@drawable/ic_open_in_new"
61+
app:iconPadding="0dp"
62+
app:iconSize="24dp" />
5763
</androidx.appcompat.widget.LinearLayoutCompat>
5864
</com.google.android.material.card.MaterialCardView>

app/src/main/res/values-ar-rEG/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<string name="menu">القائمة</string>
1010
<string name="press_back_again_to_exit">اضغط مرة أخرى للخروج</string>
1111
<string name="error_no_app_for_link">لم يتم العثور على تطبيق لفتح هذا الرابط.</string>
12+
<string name="lesson_open_in_browser">فتح الدرس في المتصفح</string>
1213
<string name="welcome">أهلاً بك</string>
1314
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>
1415
<string name="agree">موافق</string>

app/src/main/res/values-bg-rBG/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<string name="menu">Меню</string>
1111
<string name="press_back_again_to_exit">Натиснете отново назад, за да излезете</string>
1212
<string name="error_no_app_for_link">Не е намерено приложение, което да отвори тази връзка.</string>
13+
<string name="lesson_open_in_browser">Отвори урока в браузър</string>
1314

1415
<string name="welcome">Добре дошли</string>
1516
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>

app/src/main/res/values-bn-rBD/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<string name="menu">মেনু</string>
1111
<string name="press_back_again_to_exit">প্রস্থান করতে আবার ফিরে টিপুন</string>
1212
<string name="error_no_app_for_link">এই লিংকটি খোলার জন্য কোনো অ্যাপ পাওয়া যায়নি।</string>
13+
<string name="lesson_open_in_browser">ব্রাউজারে পাঠটি খুলুন</string>
1314

1415
<string name="welcome">স্বাগতম</string>
1516
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>

app/src/main/res/values-de-rDE/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<string name="menu">Menü</string>
1111
<string name="press_back_again_to_exit">Drücken Sie erneut zurück, um zu verlassen</string>
1212
<string name="error_no_app_for_link">Keine App gefunden, um diesen Link zu öffnen.</string>
13+
<string name="lesson_open_in_browser">Lektion im Browser öffnen</string>
1314

1415
<string name="welcome">Willkommen</string>
1516
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>

app/src/main/res/values-es-rGQ/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<string name="menu">Menú</string>
1111
<string name="press_back_again_to_exit">Presione de nuevo para salir</string>
1212
<string name="error_no_app_for_link">No se encontró ninguna aplicación para abrir este enlace.</string>
13+
<string name="lesson_open_in_browser">Abrir la lección en el navegador</string>
1314

1415
<string name="welcome">Bienvenido</string>
1516
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>

app/src/main/res/values-es-rMX/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<string name="menu">Menú</string>
1010
<string name="press_back_again_to_exit">Presione de nuevo para salir</string>
1111
<string name="error_no_app_for_link">No se encontró ninguna app para abrir este enlace.</string>
12+
<string name="lesson_open_in_browser">Abrir la lección en el navegador</string>
1213
<string name="welcome">Bienvenido</string>
1314
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>
1415
<string name="agree">Acepto</string>

app/src/main/res/values-fi-rFI/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<string name="code_font_description">Valitse koodikatkelmien käyttämä fontti</string>
44
<string name="bottom_navigation_labels_description">Valitse, miten etiketit näkyvät alavalikon palkissa</string>
55
<string name="error_no_app_for_link">Sovellusta tämän linkin avaamiseen ei löytynyt.</string>
6+
<string name="lesson_open_in_browser">Avaa oppitunti selaimessa</string>
67
<string name="support_link_unavailable">Tukilinkin avaamiseen ei ole saatavilla yhtään sovellusta.</string>
78
<string name="summary_android_history" tools:ignore="StringFormatCount,StringFormatMatches">Android on Googlen kehittämä mobiilikäyttöjärjestelmä. Se julkaistiin ensimmäisenä beetaversiona 5. marraskuuta 2007 ja ensimmäinen kaupallinen versio, Android 1.0, julkaistiin 23. syyskuuta 2008. Android perustuu muokattuun Linux-ytimen ja muun avoimen lähdekoodin ohjelmiston versioon.\n\nAndroid Studio on virallinen integroitu kehitysympäristö (IDE) Android-sovelluskehitykseen. Google ilmoitti siitä I/O-konferenssissaan 15. toukokuuta 2013 ja julkaisi sen yleiseen käyttöön 8. joulukuuta 2014. Android Studio perustuu IntelliJ IDEAan, suosittuun Java IDEen.</string>
89
<string name="summary_android_features">Android ei ole pelkästään käyttöjärjestelmä vaan myös alusta, joka tarjoaa monenlaisia ominaisuuksia ja mahdollisuuksia käyttäjille ja kehittäjille. Joitakin Androidin ominaisuuksia ovat:\n\n- Lähikenttäviestintä (NFC), jonka avulla voit jakaa dataa, maksaa ja yhdistää laitteita langattomasti.\n- Vaihtoehtoiset näppäimistöt, joiden avulla voit mukauttaa syöttötavan erilaisilla asetteluilla, kielillä ja teemoilla.\n- IR-lähetin, jonka avulla voit käyttää puhelintasi kaukosäätimenä televisioille, ilmastointilaitteille ja muille laitteille.\n- Kosketukseton ohjaus, jonka avulla voit suorittaa toimintoja ilman kosketusta näyttöön eleillä tai äänikomennoilla.\n- Automaatio, jonka avulla voit määrittää rutiineja ja laukaisimia, jotta puhelimesi suorittaa tehtäviä automaattisesti.\n- Langattomat sovellusten lataukset, joiden avulla voit asentaa sovelluksia tietokoneeltasi tai verkkoselaimestasi ilman kaapelia.\n- Tallennus- ja akkuvaihto, joka antaa mahdollisuuden laajentaa puhelimen muistia tai vaihtaa akun helposti.\n- Mukautettu aloitusnäyttö, jonka avulla voit personoida puhelimesi ulkoasun widgeteillä, taustakuvilla, kuvakkeilla ja käynnistysohjelmilla.\n\nAndroid Studio on paras työkalu Android-sovellusten kehittämiseen. Se tarjoaa monia ominaisuuksia ja etuja kehittäjille, kuten:\n\n- Koodieditori, jossa on syntaksin korostus, koodin täydennys, refaktorointi, virheenjäljitys, testaus ja lint-työkalut.\n- Asettelueditori vedä ja pudota -käyttöliittymällä käyttöliittymien suunnitteluun.\n- Emulaattori nopealla käynnistyksellä ja tilannevedolla sovellusten testaamiseen eri laitteilla ja kokoonpanoilla.\n- Firebase-integraatio palveluilla kuten autentikointi, tietokanta, tallennus, analytiikka, kaatumisraportointi ja paljon muuta.\n- Gradle-pohjainen rakennusjärjestelmä, jossa on riippuvuuksien hallinta, mukauttaminen, optimointi, allekirjoitus, jakeluvaihtoehdot ja paljon muuta.\n\nAndroid Studion avulla voit luoda mahtavia sovelluksia Android-laitteille käyttäen Javaa, tehokasta ja laajasti käytettyä ohjelmointikieltä.</string>

app/src/main/res/values-fil-rPH/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<string name="menu">Menu</string>
1010
<string name="press_back_again_to_exit">Pindutin muli upang lumabas</string>
1111
<string name="error_no_app_for_link">Walang nakitang app para buksan ang link na ito.</string>
12+
<string name="lesson_open_in_browser">Buksan ang aralin sa browser</string>
1213
<string name="welcome">Maligayang pagdating</string>
1314
<string name="summary_browse_terms_of_service_and_privacy_policy">Read and agree to the Terms of Service and Privacy Policy to continue</string>
1415
<string name="agree">Sumang-ayon</string>

0 commit comments

Comments
 (0)