From 789c7e3d286256292a7bffc337ba371684a2545b Mon Sep 17 00:00:00 2001 From: Jesper Handskemager Date: Thu, 14 Jul 2022 16:18:49 +0200 Subject: [PATCH] Title and thumbnail support --- app/build.gradle | 6 ++- app/release/output-metadata.json | 4 +- .../DisplayMessageActivity.java | 52 +++++++++++++++++-- .../res/layout/activity_display_message.xml | 26 ++++++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 3 +- 6 files changed, 81 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f7c16de..8634a13 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.jesperh.showyoutubedislikes" minSdk 21 targetSdk 32 - versionCode 5 - versionName "0.4" + versionCode 10 + versionName "1.0.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -21,6 +21,7 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 @@ -33,6 +34,7 @@ dependencies { implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.2' implementation 'com.android.volley:volley:1.2.0' + implementation 'com.squareup.picasso:picasso:2.8' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index f583d71..f0aa3c7 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 5, - "versionName": "0.4", + "versionCode": 10, + "versionName": "1.0.0", "outputFile": "app-release.apk" } ], diff --git a/app/src/main/java/com/jesperh/showyoutubedislikes/DisplayMessageActivity.java b/app/src/main/java/com/jesperh/showyoutubedislikes/DisplayMessageActivity.java index bbfd53d..fc1f69e 100644 --- a/app/src/main/java/com/jesperh/showyoutubedislikes/DisplayMessageActivity.java +++ b/app/src/main/java/com/jesperh/showyoutubedislikes/DisplayMessageActivity.java @@ -1,23 +1,38 @@ package com.jesperh.showyoutubedislikes; +import static android.content.ContentValues.TAG; + import androidx.appcompat.app.AppCompatActivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.widget.ImageView; import android.widget.TextView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; +import com.squareup.picasso.Picasso; import org.json.JSONException; import org.json.JSONObject; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; +import java.net.URLConnection; import java.text.DecimalFormat; +import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Pattern; public class DisplayMessageActivity extends AppCompatActivity { @@ -115,6 +130,7 @@ else if (YouTubeLink.contains("youtube.com")) } String FINAL_URL = API_BASE_URL + API_GET_VOTES_QUERY + VIDEO_ID; + String oEmbedURL = "https://youtube.com/oembed?format=json&url=" + YouTubeLink; // Define the text boxes final TextView textViewDislikes = (TextView) findViewById(R.id.YTDislikes); @@ -123,6 +139,9 @@ else if (YouTubeLink.contains("youtube.com")) final TextView textViewVideoLink = (TextView) findViewById(R.id.YTVideoLink); final TextView textViewRatio = (TextView) findViewById(R.id.YTRatio); + final TextView videoTitle = (TextView) findViewById(R.id.videoTitle); + final ImageView ThumbnailView = (ImageView)findViewById(R.id.thumbnail_View); + StringRequest myRequest = new StringRequest(Request.Method.GET, FINAL_URL, response -> { try{ @@ -140,25 +159,48 @@ else if (YouTubeLink.contains("youtube.com")) volleyError -> ErrorDownloading() // Toast.makeText(DisplayMessageActivity.this, volleyError.getMessage(), Toast.LENGTH_SHORT).show() ); + + StringRequest oEmbedRequest = new StringRequest(Request.Method.GET, oEmbedURL, + response -> { + try{ + //Create a JSON object containing information from the API. + JSONObject myJsonObject = new JSONObject(response); + // Set video title + videoTitle.setText(myJsonObject.getString("title")); + + // Set video thumbnail + String thumbnailUrl = myJsonObject.getString("thumbnail_url"); + Picasso.get().load(thumbnailUrl).into(ThumbnailView); + } catch (JSONException e) { + e.printStackTrace(); + } + }, + volleyError -> ErrorDownloading() + // Toast.makeText(DisplayMessageActivity.this, volleyError.getMessage(), Toast.LENGTH_SHORT).show() + ); + RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(myRequest); + requestQueue.add(oEmbedRequest); return ""; } public void ErrorDownloading() { - final TextView textViewDislikes = (TextView) findViewById(R.id.YTDislikes); - final TextView textViewLikes = (TextView) findViewById(R.id.YTLikes); - final TextView textViewViews = (TextView) findViewById(R.id.YTViews); - final TextView textViewVideoLink = (TextView) findViewById(R.id.YTVideoLink); - final TextView textViewRatio = (TextView) findViewById(R.id.YTRatio); + final TextView textViewDislikes = findViewById(R.id.YTDislikes); + final TextView textViewLikes = findViewById(R.id.YTLikes); + final TextView textViewViews = findViewById(R.id.YTViews); + final TextView textViewVideoLink = findViewById(R.id.YTVideoLink); + final TextView textViewRatio = findViewById(R.id.YTRatio); + final TextView videoTitle = findViewById(R.id.videoTitle); textViewDislikes.setText("Error Downloading!"); textViewLikes.setText("Error Downloading!"); textViewRatio.setText("Error Downloading!"); textViewViews.setText("Error Downloading!"); textViewVideoLink.setText("Error Downloading!"); + textViewVideoLink.setText("Unknown Title"); } diff --git a/app/src/main/res/layout/activity_display_message.xml b/app/src/main/res/layout/activity_display_message.xml index 9cba463..4501a4b 100644 --- a/app/src/main/res/layout/activity_display_message.xml +++ b/app/src/main/res/layout/activity_display_message.xml @@ -160,4 +160,30 @@ app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView4" /> + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 2106b82..3f78b95 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { mavenCentral() } dependencies { - classpath "com.android.tools.build:gradle:7.0.2" + classpath 'com.android.tools.build:gradle:7.1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1c7771b..7644668 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ #Sat Jan 01 22:38:49 CET 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME -distributionSha256Sum=e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637