From dfd560204e1101b05abad2bc287d08490d1f5481 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Denis=20=C3=87erri?=
<64997243+deniscerri@users.noreply.github.com>
Date: Fri, 30 Sep 2022 00:58:19 +0200
Subject: [PATCH] fixed api issues and other stuff
Due to high app usage my personal youtube api key was throttled. I removed the built-in api key for default yt-dlp requests. slower but usable to everyone. You can add your own youtube api key in the setttings for faster responses
fixed downloaded items other than youtube not having proper download links
fixed app crashing when pressing download all button
---
.idea/assetWizardSettings.xml | 5 +-
.idea/deploymentTargetDropDown.xml | 17 ---
.idea/misc.xml | 1 +
app/src/main/AndroidManifest.xml | 3 -
.../ytdlnis/database/DBManager.java | 23 ++--
.../deniscerri/ytdlnis/database/Video.java | 60 ++++++++-
.../ytdlnis/page/HistoryFragment.java | 78 ++++++------
.../deniscerri/ytdlnis/page/HomeFragment.java | 44 ++++---
.../page/settings/SettingsFragment.java | 9 ++
.../InfoUtil.java} | 114 ++++++++++++------
app/src/main/res/drawable/ic_key.xml | 5 +
app/src/main/res/layout/fragment_home.xml | 3 +-
.../layout/home_download_all_bottom_sheet.xml | 14 ++-
app/src/main/res/values/strings.xml | 6 +
app/src/main/res/xml/root_preferences.xml | 7 ++
15 files changed, 248 insertions(+), 141 deletions(-)
delete mode 100644 .idea/deploymentTargetDropDown.xml
rename app/src/main/java/com/deniscerri/ytdlnis/{api/YoutubeAPIManager.java => util/InfoUtil.java} (78%)
create mode 100644 app/src/main/res/drawable/ic_key.xml
diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index 42e3dc32..d1fac0cd 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -320,7 +320,7 @@
@@ -330,9 +330,8 @@
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 24252699..00000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 323d432d..be2898d8 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -49,6 +49,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3c06d882..44deca19 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -49,9 +49,6 @@
android:name=".DownloaderService"
android:enabled="true"
android:exported="false" />
-
\ No newline at end of file
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/DBManager.java b/app/src/main/java/com/deniscerri/ytdlnis/database/DBManager.java
index 075f2c39..6240c56a 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/DBManager.java
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/DBManager.java
@@ -10,7 +10,7 @@ import java.util.ArrayList;
public class DBManager extends SQLiteOpenHelper {
public static final String db_name = "ytdlnis_db";
- public static final int db_version = 6;
+ public static final int db_version = 7;
public static final String results_table_name = "results";
public static final String history_table_name = "history";
public static final String id = "id";
@@ -26,6 +26,7 @@ public class DBManager extends SQLiteOpenHelper {
public static final String time = "time";
public static final String isPlaylistItem = "isPlaylistItem";
public static final String website = "website";
+ public static final String downloadPath = "downloadPath";
public DBManager(Context context){
@@ -51,14 +52,15 @@ public class DBManager extends SQLiteOpenHelper {
query = "CREATE TABLE " + history_table_name + " ("
+ id + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + videoId + " TEXT,"
+ + url + " TEXT,"
+ title + " TEXT,"
+ author + " TEXT,"
+ duration + " TEXT,"
+ thumb + " TEXT,"
+ type + " TEXT,"
+ time + " TEXT,"
- + isPlaylistItem + " INTENGER)";
+ + downloadPath + " TEXT,"
+ + website + " TEXT)";
sqLiteDatabase.execSQL(query);
}
@@ -96,7 +98,7 @@ public class DBManager extends SQLiteOpenHelper {
}
@Override
- public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
+ public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVer, int newVer) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + results_table_name);
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + history_table_name);
onCreate(sqLiteDatabase);
@@ -146,7 +148,8 @@ public class DBManager extends SQLiteOpenHelper {
cursor.getString(5),
cursor.getString(6),
cursor.getString(7),
- cursor.getInt(8)));
+ cursor.getString(8),
+ cursor.getString(9)));
} while (cursor.moveToNext());
}
@@ -181,13 +184,15 @@ public class DBManager extends SQLiteOpenHelper {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
- values.put(videoId, v.getVideoId());
+ values.put(url, v.getURL());
values.put(title, v.getTitle());
values.put(author, v.getAuthor());
values.put(duration, v.getDuration());
values.put(thumb, v.getThumb());
values.put(type, v.getDownloadedType());
values.put(time, v.getDownloadedTime());
+ values.put(downloadPath, v.getDownloadPath());
+ values.put(website, v.getWebsite());
db.insert(history_table_name, null, values);
db.close();
@@ -209,10 +214,10 @@ public class DBManager extends SQLiteOpenHelper {
db.update(results_table_name, values, "videoId = ?", new String[]{id});
}
- public int checkDownloaded(String id, String downloadType){
+ public int checkDownloaded(String url, String downloadType){
SQLiteDatabase db = this.getWritableDatabase();
- Cursor cursor = db.rawQuery("SELECT * FROM " + history_table_name + " WHERE videoId='" +
- id + "' AND type='"+downloadType + "' LIMIT 1", null);
+ Cursor cursor = db.rawQuery("SELECT * FROM " + history_table_name + " WHERE url='" +
+ url + "' AND type='"+downloadType + "' LIMIT 1", null);
if(cursor.moveToFirst()){
return 1;
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/Video.java b/app/src/main/java/com/deniscerri/ytdlnis/database/Video.java
index 117f6f13..02a5963c 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/database/Video.java
+++ b/app/src/main/java/com/deniscerri/ytdlnis/database/Video.java
@@ -16,6 +16,7 @@ public class Video implements Parcelable {
private int downloadedVideo;
private String downloadedTime;
private int isPlaylistItem;
+ private String downloadPath;
private String website;
// RESULTS OBJECT
@@ -34,17 +35,18 @@ public class Video implements Parcelable {
}
//HISTORY OBJECT
- public Video(int id, String videoId, String title, String author, String duration, String thumb,
- String downloadedType, String downloadedTime, int isPlaylistItem) {
+ public Video(int id, String url, String title, String author, String duration, String thumb,
+ String downloadedType, String downloadedTime, String downloadPath, String website) {
this.id = id;
- this.videoId = videoId;
+ this.url = url;
this.title = title;
this.author = author;
this.duration = duration;
this.thumb = thumb;
this.downloadedType = downloadedType;
this.downloadedTime = downloadedTime;
- this.isPlaylistItem = isPlaylistItem;
+ this.downloadPath = downloadPath;
+ this.website = website;
}
@@ -61,6 +63,7 @@ public class Video implements Parcelable {
downloadedVideo = in.readInt();
downloadedTime = in.readString();
isPlaylistItem = in.readInt();
+ downloadPath = in.readString();
website = in.readString();
}
@@ -148,6 +151,54 @@ public class Video implements Parcelable {
public void setWebsite(String site){ this.website = site; }
+ public void setVideoId(String videoId) {
+ this.videoId = videoId;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public void setDuration(String duration) {
+ this.duration = duration;
+ }
+
+ public void setThumb(String thumb) {
+ this.thumb = thumb;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public int getDownloadedAudio() {
+ return downloadedAudio;
+ }
+
+ public void setDownloadedAudio(int downloadedAudio) {
+ this.downloadedAudio = downloadedAudio;
+ }
+
+ public int getDownloadedVideo() {
+ return downloadedVideo;
+ }
+
+ public void setDownloadedVideo(int downloadedVideo) {
+ this.downloadedVideo = downloadedVideo;
+ }
+
+ public String getDownloadPath() {
+ return downloadPath;
+ }
+
+ public void setDownloadPath(String downloadPath) {
+ this.downloadPath = downloadPath;
+ }
+
@Override
public int describeContents() {
return 0;
@@ -167,6 +218,7 @@ public class Video implements Parcelable {
parcel.writeInt(downloadedVideo);
parcel.writeString(downloadedTime);
parcel.writeInt(isPlaylistItem);
+ parcel.writeString(downloadPath);
parcel.writeString(website);
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/page/HistoryFragment.java b/app/src/main/java/com/deniscerri/ytdlnis/page/HistoryFragment.java
index 34b4149d..69ec91d6 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/page/HistoryFragment.java
+++ b/app/src/main/java/com/deniscerri/ytdlnis/page/HistoryFragment.java
@@ -44,6 +44,7 @@ public class HistoryFragment extends Fragment implements HistoryRecyclerViewAdap
private View fragmentView;
private DBManager dbManager;
Context context;
+ Context fragmentContext;
private LayoutInflater layoutinflater;
private ShimmerFrameLayout shimmerCards;
private MaterialToolbar topAppBar;
@@ -52,10 +53,8 @@ public class HistoryFragment extends Fragment implements HistoryRecyclerViewAdap
private BottomSheetDialog bottomSheet;
private Handler uiHandler;
private RelativeLayout no_results;
-
private ArrayList