From 301abb831923a21c70c213236d2dfafa88d253aa Mon Sep 17 00:00:00 2001 From: "HAKO-PC\\Hako" Date: Sat, 30 Dec 2017 13:54:44 -0300 Subject: [PATCH] + Open artist URL with the listview onClick --- app/src/main/AndroidManifest.xml | 4 ++-- .../activities/ArtistListActivity.java | 23 +++++++++++++++++-- .../main/res/layout/activity_artists_list.xml | 4 ++-- app/src/main/res/xml/backup_rules.xml | 4 +++- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2036afc..44e8f9a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,12 +7,12 @@ + android:theme="@style/AppTheme.BrandedLaunch"> diff --git a/app/src/main/java/com/hakodev/androiditunesapi/activities/ArtistListActivity.java b/app/src/main/java/com/hakodev/androiditunesapi/activities/ArtistListActivity.java index 0d8b2ba..f7292d4 100644 --- a/app/src/main/java/com/hakodev/androiditunesapi/activities/ArtistListActivity.java +++ b/app/src/main/java/com/hakodev/androiditunesapi/activities/ArtistListActivity.java @@ -1,6 +1,8 @@ package com.hakodev.androiditunesapi.activities; import android.Manifest; +import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.constraint.ConstraintLayout; @@ -25,6 +27,7 @@ import com.hakodev.androiditunesapi.util.Utils; import java.io.IOException; import java.util.ArrayList; +import java.util.List; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -44,6 +47,7 @@ public class ArtistListActivity extends AppCompatActivity { private OkHttpClient networkClient; private ArtistsListAdapter artistsListAdapter; private ArrayList artistsList = new ArrayList<>(); + private List artists; private ConstraintLayout lytBase; private ListView listArtists; @@ -96,7 +100,7 @@ public class ArtistListActivity extends AppCompatActivity { new TimerTask() { @Override public void run() { - if (txt.toString().length() > 3){ + if (txt.toString().length() > 3) { requestArtist(txt.toString()); } } @@ -109,6 +113,9 @@ public class ArtistListActivity extends AppCompatActivity { networkClient = AndroidItunesAPI.getInstance().getNetworkClient(); artistsListAdapter = new ArtistsListAdapter(this, artistsList); listArtists.setAdapter(artistsListAdapter); + listArtists.setOnItemClickListener((parent, view, position, id) -> { + openWebLink(artists.get(position).getArtistLinkUrl()); + }); } private void askForPermissions() { @@ -151,8 +158,14 @@ public class ArtistListActivity extends AppCompatActivity { } private ArrayList parseArtistsResponse(String body) { - ItunesResponse itunesResponse = new Gson().fromJson(body, ItunesResponse.class); + ItunesResponse itunesResponse = new ItunesResponse(); + try { + itunesResponse = new Gson().fromJson(body, ItunesResponse.class); + } catch (IllegalStateException e) { + Log.d(TAG, "The Json was malformed, the request has been ignored"); + } ArrayList artistsNames = new ArrayList<>(); + artists = itunesResponse.getResults(); for (Result artist : itunesResponse.getResults()) { artistsNames.add(artist.getArtistName()); } @@ -164,4 +177,10 @@ public class ArtistListActivity extends AppCompatActivity { artistsList.addAll(artists); runOnUiThread(() -> artistsListAdapter.notifyDataSetChanged()); } + + private void openWebLink(String url) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(url)); + startActivity(intent); + } } diff --git a/app/src/main/res/layout/activity_artists_list.xml b/app/src/main/res/layout/activity_artists_list.xml index 70ce42e..9617f68 100644 --- a/app/src/main/res/layout/activity_artists_list.xml +++ b/app/src/main/res/layout/activity_artists_list.xml @@ -5,9 +5,9 @@ android:id="@+id/lytBase" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="com.hakodev.androiditunesapi.activities.ArtistListActivity" android:focusable="true" - android:focusableInTouchMode="true"> + android:focusableInTouchMode="true" + tools:context="com.hakodev.androiditunesapi.activities.ArtistListActivity"> - + \ No newline at end of file