Skip to content

Commit 0e4698e

Browse files
committed
Use global download options
1 parent 5180ca8 commit 0e4698e

File tree

14 files changed

+87
-88
lines changed

14 files changed

+87
-88
lines changed

app/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ conan_cmake_run(CONANFILE conanfile.txt
3030

3131
### native.so
3232
add_library(native SHARED
33-
src/main/cpp/filesystem.cpp
33+
src/main/cpp/filesystem/settings.cpp
34+
src/main/cpp/download/global_options.cpp
3435
src/main/cpp/handle.h
3536
src/main/cpp/channel.cpp
3637
src/main/cpp/playlist.cpp

app/src/main/cpp/channel.cpp

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,9 @@ Java_de_linux13524_ytldl_jniwrapper_Channel_loadVideos
5252
// downloadVideos
5353
JNIEXPORT void JNICALL
5454
Java_de_linux13524_ytldl_jniwrapper_Channel_downloadVideos
55-
(JNIEnv *env, jobject thiz, jintArray itags_, jobject callbackProgress_, jstring folder_) {
55+
(JNIEnv *env, jobject thiz, jobject callbackProgress_) {
5656

5757
auto *channel = getHandle<Youtube::Channel>(env, thiz);
58-
const char *folder = env->GetStringUTFChars(folder_, nullptr);
59-
60-
jsize size = env->GetArrayLength(itags_);
61-
std::vector<int> vItags(size);
62-
63-
jint *itags = env->GetIntArrayElements(itags_, nullptr);
64-
65-
for (int i = 0; i < size; i++) {
66-
vItags[i] = itags[i];
67-
}
6858

6959
auto lClass = env->FindClass("de/linux13524/ytldl/jniwrapper/Channel$ProgressCallback");
7060
auto gClass = reinterpret_cast<jclass>(env->NewGlobalRef(lClass));
@@ -92,9 +82,7 @@ Java_de_linux13524_ytldl_jniwrapper_Channel_downloadVideos
9282
if (needsDetach) jvm->DetachCurrentThread();
9383
};
9484

95-
channel->DownloadVideos(vItags, f, folder);
96-
97-
env->ReleaseIntArrayElements(itags_, itags, 0);
85+
channel->DownloadVideos(f);
9886
}
9987

10088
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include <jni.h>
2+
#include "../handle.h"
3+
#include "YoutubeListDownloader/download/options.h"
4+
#include "YoutubeListDownloader/youtube/video.h"
5+
6+
#ifndef PLATFORM_ANDROID_DOWNLOAD_GLOBAL_OPTIONS_CPP
7+
#define PLATFORM_ANDROID_DOWNLOAD_GLOBAL_OPTIONS_CPP
8+
9+
extern "C" {
10+
11+
// setSaveVideoName
12+
JNIEXPORT void JNICALL
13+
Java_de_linux13524_ytldl_jniwrapper_download_GlobalOptions_setSaveVideoName
14+
(JNIEnv *env, jobject thiz, jboolean save_video_name_) {
15+
16+
Download::Options::GlobalOptions().m_save_video_name = save_video_name_;
17+
}
18+
19+
// setItags
20+
JNIEXPORT void JNICALL
21+
Java_de_linux13524_ytldl_jniwrapper_download_GlobalOptions_setItags
22+
(JNIEnv *env, jobject thiz, jintArray itags_) {
23+
24+
jsize size = env->GetArrayLength(itags_);
25+
std::vector<int> vItags(size);
26+
27+
jint *itags = env->GetIntArrayElements(itags_, nullptr);
28+
29+
for (int i = 0; i < size; i++) {
30+
vItags[i] = itags[i];
31+
}
32+
33+
Download::Options::GlobalOptions().m_itags = vItags;
34+
35+
env->ReleaseIntArrayElements(itags_, itags, 0);
36+
}
37+
38+
// setPath
39+
JNIEXPORT void JNICALL
40+
Java_de_linux13524_ytldl_jniwrapper_download_GlobalOptions_setPath
41+
(JNIEnv *env, jobject thiz, jstring path_) {
42+
43+
const char *path = env->GetStringUTFChars(path_, nullptr);
44+
45+
Download::Options::GlobalOptions().m_path = path;
46+
}
47+
#endif
48+
49+
}

app/src/main/cpp/playlist.cpp

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,19 +62,9 @@ Java_de_linux13524_ytldl_jniwrapper_Playlist_loadVideos
6262
// downloadVideos
6363
JNIEXPORT void JNICALL
6464
Java_de_linux13524_ytldl_jniwrapper_Playlist_downloadVideos
65-
(JNIEnv *env, jobject thiz, jintArray itags_, jobject callbackProgress_, jstring folder_) {
65+
(JNIEnv *env, jobject thiz, jobject callbackProgress_) {
6666

6767
auto *playlist = getHandle<Youtube::Playlist>(env, thiz);
68-
const char *folder = env->GetStringUTFChars(folder_, nullptr);
69-
70-
jsize size = env->GetArrayLength(itags_);
71-
std::vector<int> vItags(size);
72-
73-
jint *itags = env->GetIntArrayElements(itags_, nullptr);
74-
75-
for (int i = 0; i < size; i++) {
76-
vItags[i] = itags[i];
77-
}
7868

7969
auto lClass = env->FindClass("de/linux13524/ytldl/jniwrapper/Playlist$ProgressCallback");
8070
auto gClass = reinterpret_cast<jclass>(env->NewGlobalRef(lClass));
@@ -102,9 +92,7 @@ Java_de_linux13524_ytldl_jniwrapper_Playlist_downloadVideos
10292
if (needsDetach) jvm->DetachCurrentThread();
10393
};
10494

105-
playlist->DownloadVideos(vItags, f, folder);
106-
107-
env->ReleaseIntArrayElements(itags_, itags, 0);
95+
playlist->DownloadVideos(f);
10896
}
10997

11098
}

app/src/main/cpp/video.cpp

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <jni.h>
22
#include "handle.h"
3+
#include "YoutubeListDownloader/download/options.h"
34
#include "YoutubeListDownloader/youtube/video.h"
45

56
#ifndef PLATFORM_ANDROID_VIDEO_CPP
@@ -143,47 +144,14 @@ Java_de_linux13524_ytldl_jniwrapper_Video_printFormats
143144
video->PrintFormats();
144145
}
145146

146-
// download
147-
JNIEXPORT void JNICALL
148-
Java_de_linux13524_ytldl_jniwrapper_Video_downloadDir
149-
(JNIEnv *env, jobject thiz, jintArray itags_, jstring folder_) {
150-
151-
auto *video = getHandle<Youtube::Video>(env, thiz);
152-
const char *folder = env->GetStringUTFChars(folder_, nullptr);
153-
154-
jsize size = env->GetArrayLength(itags_);
155-
std::vector<int> vItags(size);
156-
157-
jint *itags = env->GetIntArrayElements(itags_, nullptr);
158-
159-
for (int i = 0; i < size; i++) {
160-
vItags[i] = itags[i];
161-
}
162-
163-
Youtube::Video::Download(*video, vItags, folder);
164-
165-
env->ReleaseIntArrayElements(itags_, itags, 0);
166-
}
167-
168147
// download
169148
JNIEXPORT void JNICALL
170149
Java_de_linux13524_ytldl_jniwrapper_Video_download
171-
(JNIEnv *env, jobject thiz, jintArray itags_) {
150+
(JNIEnv *env, jobject thiz) {
172151

173152
auto *video = getHandle<Youtube::Video>(env, thiz);
174153

175-
jsize size = env->GetArrayLength(itags_);
176-
std::vector<int> vItags(size);
177-
178-
jint *itags = env->GetIntArrayElements(itags_, nullptr);
179-
180-
for (int i = 0; i < size; i++) {
181-
vItags[i] = itags[i];
182-
}
183-
184-
Youtube::Video::Download(*video, vItags);
185-
186-
env->ReleaseIntArrayElements(itags_, itags, 0);
154+
Youtube::Video::Download(*video);
187155
}
188156

189157
}

app/src/main/java/de/linux13524/ytldl/MainActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import androidx.fragment.app.FragmentActivity
88
import androidx.navigation.findNavController
99
import androidx.navigation.ui.AppBarConfiguration
1010
import androidx.navigation.ui.setupWithNavController
11-
import de.linux13524.ytldl.jniwrapper.Filesystem
1211
import de.linux13524.ytldl.utils.LogReader
1312
import de.linux13524.ytldl.utils.PermissionManager
13+
import de.linux13524.ytldl.utils.PreferencesManager.syncPreferencesWithGlobalDownloadOptions
1414
import kotlinx.android.synthetic.main.activity_main.*
15+
import de.linux13524.ytldl.jniwrapper.download.GlobalOptions as GlobalDownloadOptions
16+
import de.linux13524.ytldl.jniwrapper.filesystem.Settings as FilesystemSettings
1517

1618

1719
@Suppress("UNUSED_PARAMETER")

app/src/main/java/de/linux13524/ytldl/fragments/AddListFragment.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package de.linux13524.ytldl.fragments
22

33
import android.os.Bundle
4-
import android.os.Environment
54
import androidx.fragment.app.Fragment
65
import android.view.LayoutInflater
76
import android.view.View
@@ -10,7 +9,6 @@ import de.linux13524.ytldl.R
109
import de.linux13524.ytldl.jniwrapper.Channel
1110
import de.linux13524.ytldl.jniwrapper.Playlist
1211
import de.linux13524.ytldl.jniwrapper.Video
13-
import de.linux13524.ytldl.utils.PreferencesManager.getItags
1412
import kotlinx.android.synthetic.main.fragment_add_list.*
1513
import kotlinx.coroutines.Dispatchers
1614
import kotlinx.coroutines.GlobalScope
@@ -120,7 +118,7 @@ class AddListFragment : Fragment() {
120118
val activity = activity ?: return@launch
121119

122120
withContext(Dispatchers.Default) {
123-
currentVideo?.downloadDir(activity.getItags(), sdCardDir)
121+
currentVideo?.download()
124122
}
125123

126124
pb_download?.progress = pb_download?.max ?: 0
@@ -131,7 +129,7 @@ class AddListFragment : Fragment() {
131129
val activity = activity ?: return@launch
132130

133131
withContext(Dispatchers.Default) {
134-
currentPlaylist?.downloadVideos(activity.getItags(), playlistProgress, sdCardDir)
132+
currentPlaylist?.downloadVideos(playlistProgress)
135133
}
136134

137135
pb_download?.progress = pb_download?.max ?: 0
@@ -142,7 +140,7 @@ class AddListFragment : Fragment() {
142140
val activity = activity ?: return@launch
143141

144142
withContext(Dispatchers.Default) {
145-
currentChannel?.downloadVideos(activity.getItags(), channelProgress, sdCardDir)
143+
currentChannel?.downloadVideos(channelProgress)
146144
}
147145

148146
pb_download?.progress = pb_download?.max ?: 0

app/src/main/java/de/linux13524/ytldl/jniwrapper/Channel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ class Channel(private val nativeHandle: Long) {
2020
external fun getTitle(): String
2121

2222
external fun loadVideos()
23-
external fun downloadVideos(itags: IntArray, callbackProgress: ProgressCallback?, folder: String?)
23+
external fun downloadVideos(callbackProgress: ProgressCallback?)
2424
}

app/src/main/java/de/linux13524/ytldl/jniwrapper/Filesystem.kt

Lines changed: 0 additions & 10 deletions
This file was deleted.

app/src/main/java/de/linux13524/ytldl/jniwrapper/Playlist.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ class Playlist(private val nativeHandle: Long) {
2121
external fun getTitle(): String
2222

2323
external fun loadVideos()
24-
external fun downloadVideos(itags: IntArray, callbackProgress : ProgressCallback?, folder : String?)
24+
external fun downloadVideos(callbackProgress : ProgressCallback?)
2525
}

0 commit comments

Comments
 (0)