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