From 709a3778a28d8ef7aa8efba803841c9106cc485e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Denis=20=C3=87erri?=
<64997243+deniscerri@users.noreply.github.com>
Date: Sun, 18 Sep 2022 00:27:36 +0200
Subject: [PATCH] other new features
- check for updates when app launches
- remove scrollview so that recyclerview can recycle. It wont hide the top bar but thats a sacrifice for the greater good.
- remove download all mini card and made it into a floating action button
- made video loading from playlists as fast as possible even if you have thousands of videos in a list. It adds videos in recyclerview in a form of pagination
- fixed preferences when you just installed the app and you never opened the preference screen you can still download without erroring out
---
.idea/misc.xml | 6 +-
.../ytdl/ExampleInstrumentedTest.java | 2 +-
.../main/java/com/deniscerri/ytdl/App.java | 10 +
.../com/deniscerri/ytdl/MainActivity.java | 20 +-
.../ytdl/adapter/HomeRecyclerViewAdapter.java | 42 +++-
.../ytdl/api/YoutubeAPIManager.java | 69 +++++-
.../deniscerri/ytdl/database/DBManager.java | 2 -
.../ytdl/page/CustomCommandActivity.java | 19 +-
.../deniscerri/ytdl/page/HistoryFragment.java | 31 +--
.../deniscerri/ytdl/page/HomeFragment.java | 217 +++++++++---------
.../deniscerri/ytdl/page/MoreFragment.java | 92 +-------
.../ytdl/page/MusicEditorFragment.java | 30 ---
.../ytdl/page/settings/SettingsFragment.java | 46 ++--
.../com/deniscerri/ytdl/util/UpdateUtil.java | 93 +++++++-
app/src/main/res/layout/fragment_history.xml | 138 +++++------
app/src/main/res/layout/fragment_home.xml | 135 ++++++-----
.../main/res/layout/fragment_music_editor.xml | 14 --
.../main/res/layout/history_card_shimmer.xml | 2 +-
.../main/res/layout/history_no_results.xml | 4 +-
app/src/main/res/menu/bottom_nav_menu.xml | 3 -
app/src/main/res/values-sq-rAL/strings.xml | 9 +-
app/src/main/res/values/strings.xml | 4 +-
app/src/main/res/xml/root_preferences.xml | 5 +-
23 files changed, 505 insertions(+), 488 deletions(-)
delete mode 100644 app/src/main/java/com/deniscerri/ytdl/page/MusicEditorFragment.java
delete mode 100644 app/src/main/res/layout/fragment_music_editor.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 937122e8..6d71d433 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -67,13 +67,13 @@
-
+
-
-
+
+
diff --git a/app/src/androidTest/java/com/deniscerri/ytdl/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/deniscerri/ytdl/ExampleInstrumentedTest.java
index caa4380a..d5997f2e 100644
--- a/app/src/androidTest/java/com/deniscerri/ytdl/ExampleInstrumentedTest.java
+++ b/app/src/androidTest/java/com/deniscerri/ytdl/ExampleInstrumentedTest.java
@@ -21,6 +21,6 @@ public class ExampleInstrumentedTest {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
- assertEquals("com.yausername.youtubedl_android_example", appContext.getPackageName());
+ assertEquals("com.deniscerri.ytdl", appContext.getPackageName());
}
}
diff --git a/app/src/main/java/com/deniscerri/ytdl/App.java b/app/src/main/java/com/deniscerri/ytdl/App.java
index 785cff17..4ecccabb 100644
--- a/app/src/main/java/com/deniscerri/ytdl/App.java
+++ b/app/src/main/java/com/deniscerri/ytdl/App.java
@@ -1,15 +1,24 @@
package com.deniscerri.ytdl;
import android.app.Application;
+import android.os.Environment;
+import android.provider.ContactsContract;
import android.util.Log;
import android.widget.Toast;
+import androidx.preference.PreferenceManager;
+
import com.deniscerri.ytdl.util.NotificationUtil;
+import com.deniscerri.ytdl.util.UpdateUtil;
import com.google.android.material.color.DynamicColors;
import com.yausername.ffmpeg.FFmpeg;
import com.yausername.youtubedl_android.YoutubeDL;
import com.yausername.youtubedl_android.YoutubeDLException;
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
import io.reactivex.Completable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.exceptions.UndeliverableException;
@@ -30,6 +39,7 @@ public class App extends Application {
notificationUtil = new NotificationUtil(this);
createNotificationChannels();
+ PreferenceManager.setDefaultValues(this, "root_preferences", this.MODE_PRIVATE, R.xml.root_preferences, false);
configureRxJavaErrorHandler();
Completable.fromAction(this::initLibraries).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new DisposableCompletableObserver() {
@Override
diff --git a/app/src/main/java/com/deniscerri/ytdl/MainActivity.java b/app/src/main/java/com/deniscerri/ytdl/MainActivity.java
index cb45ec97..3811b08c 100644
--- a/app/src/main/java/com/deniscerri/ytdl/MainActivity.java
+++ b/app/src/main/java/com/deniscerri/ytdl/MainActivity.java
@@ -10,12 +10,15 @@ import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
+import androidx.preference.PreferenceManager;
+
import com.deniscerri.ytdl.databinding.ActivityMainBinding;
import com.deniscerri.ytdl.page.HistoryFragment;
import com.deniscerri.ytdl.page.HomeFragment;
import com.deniscerri.ytdl.page.MoreFragment;
-import com.deniscerri.ytdl.page.MusicEditorFragment;
import com.deniscerri.ytdl.page.settings.SettingsActivity;
+import com.deniscerri.ytdl.page.settings.SettingsFragment;
+import com.deniscerri.ytdl.util.UpdateUtil;
public class MainActivity extends AppCompatActivity{
@@ -27,7 +30,6 @@ public class MainActivity extends AppCompatActivity{
private HomeFragment homeFragment;
private HistoryFragment historyFragment;
- private MusicEditorFragment musicEditorFragment;
private MoreFragment moreFragment;
private Fragment lastFragment;
@@ -58,15 +60,15 @@ public class MainActivity extends AppCompatActivity{
setContentView(R.layout.activity_main);
setContentView(binding.getRoot());
-
context = getBaseContext();
+ checkUpdate();
+
fm = getSupportFragmentManager();
homeFragment = new HomeFragment();
historyFragment = new HistoryFragment();
moreFragment = new MoreFragment();
- musicEditorFragment = new MusicEditorFragment();
initFragments();
@@ -94,8 +96,6 @@ public class MainActivity extends AppCompatActivity{
this.setTitle(getString(R.string.more));
}
replaceFragment(moreFragment);
- }else if(id == R.id.music_editor){
- replaceFragment(musicEditorFragment);
}
return true;
});
@@ -114,9 +114,9 @@ public class MainActivity extends AppCompatActivity{
if(Intent.ACTION_SEND.equals(action)){
Log.e(TAG, action);
-
homeFragment = new HomeFragment();
historyFragment = new HistoryFragment();
+ moreFragment = new MoreFragment();
homeFragment.handleIntent(intent);
initFragments();
@@ -128,10 +128,8 @@ public class MainActivity extends AppCompatActivity{
.replace(R.id.frame_layout, homeFragment)
.add(R.id.frame_layout, historyFragment)
.add(R.id.frame_layout, moreFragment)
- .add(R.id.frame_layout, musicEditorFragment)
.hide(historyFragment)
.hide(moreFragment)
- .hide(musicEditorFragment)
.commit();
lastFragment = homeFragment;
@@ -156,4 +154,8 @@ public class MainActivity extends AppCompatActivity{
isDownloadServiceRunning = false;
}
+ private void checkUpdate(){
+ UpdateUtil updateUtil = new UpdateUtil(this);
+ updateUtil.updateApp();
+ }
}
diff --git a/app/src/main/java/com/deniscerri/ytdl/adapter/HomeRecyclerViewAdapter.java b/app/src/main/java/com/deniscerri/ytdl/adapter/HomeRecyclerViewAdapter.java
index 72ee9ba9..e5b8aabe 100644
--- a/app/src/main/java/com/deniscerri/ytdl/adapter/HomeRecyclerViewAdapter.java
+++ b/app/src/main/java/com/deniscerri/ytdl/adapter/HomeRecyclerViewAdapter.java
@@ -4,6 +4,7 @@ import android.app.Activity;
import android.graphics.Color;
import android.os.Handler;
import android.os.Looper;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -27,11 +28,13 @@ import java.util.ArrayList;
public class HomeRecyclerViewAdapter extends RecyclerView.Adapter {
private ArrayList