small fixes

added icons to preferences
updated icon colors
removed some leftover hardcoded strings
fixed time formatting
fixed image table in readme
This commit is contained in:
Denis Çerri 2022-08-30 14:06:35 +02:00
parent 2cb22f0653
commit 28a72866ca
No known key found for this signature in database
GPG key ID: 3F50F14A8E7F7A13
15 changed files with 119 additions and 84 deletions

View file

@ -23,7 +23,7 @@
<PersistentState>
<option name="values">
<map>
<entry key="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/icons/material/materialicons/announcement/baseline_announcement_24.xml" />
<entry key="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/icons/material/materialicons/code/baseline_code_24.xml" />
</map>
</option>
</PersistentState>
@ -34,7 +34,7 @@
<option name="values">
<map>
<entry key="color" value="00a6ff" />
<entry key="outputName" value="ic_announcement" />
<entry key="outputName" value="ic_code" />
<entry key="sourceFile" value="C:\Users\denis\Desktop\youtubedl-android-0.13.1\youtubedl-android-0.13.1" />
</map>
</option>

View file

@ -37,18 +37,21 @@
<entry key="..\:/Users/denis/Desktop/ytdlnis/ytdlnis/app/src/main/res/xml/shortcuts.xml" value="0.13852073535699017" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_announcement.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_cloud_download.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_code.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_download.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_go_up.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_home.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_music.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_music_downloaded.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_search.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_update.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_video.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/drawable/ic_video_downloaded.xml" value="0.1275" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/activity_main.xml" value="0.18" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/download_all_card.xml" value="0.3375" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/empty_history_hint.xml" value="0.2" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/fragment_history.xml" value="0.20555555555555555" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/fragment_home.xml" value="0.1" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/fragment_home.xml" value="0.18" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/fragment_settings.xml" value="0.16875" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/history_card.xml" value="0.1" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/layout/history_card_shimmer.xml" value="0.22" />
@ -59,7 +62,7 @@
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/menu/history_menu.xml" value="0.16875" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/menu/main_menu.xml" value="0.16875" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/menu/settings_menu.xml" value="0.16875" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/xml/root_preferences.xml" value="0.30833333333333335" />
<entry key="..\:/Users/denis/Documents/GitHub/ytdlnis/app/src/main/res/xml/root_preferences.xml" value="0.18" />
</map>
</option>
</component>

View file

@ -15,9 +15,8 @@ Features:
- [x] share videos / playlists from the Youtube App using the share menu
- [x] heads-up download notifications
| | |
|:-------------------------:|:-------------------------:|
|![image](https://user-images.githubusercontent.com/64997243/185808455-0b04f573-afe5-43d8-b6c8-6481b799e474.png)|![image](https://user-images.githubusercontent.com/64997243/185808467-7fcc9938-f124-45c1-8b29-3384269fb693.png)|
|:-------------------------:|:-------------------------:|
![image](https://user-images.githubusercontent.com/64997243/185808474-5df57756-6e27-4c03-9870-3c47f782bfb9.png)|![image](https://user-images.githubusercontent.com/64997243/185808477-073a8ea8-70ae-4702-9865-317149f2bb25.png)|
![image](https://user-images.githubusercontent.com/64997243/185808483-9b5e62c3-f28b-4bfb-9caf-adbb899ce702.png)|![image](https://user-images.githubusercontent.com/64997243/185808495-9930312c-34df-43f1-b7f3-e519d1231c09.png)|

View file

@ -38,6 +38,7 @@ import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.deniscerri.ytdl.api.YoutubeAPIManager;
import com.deniscerri.ytdl.database.DBManager;
@ -99,21 +100,14 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
public void onProgressUpdate(float progress, long etaInSeconds, String line) {
activity.runOnUiThread(() -> {
progressBar.setProgress((int) progress);
String contentText = "";
if(progressBar.getProgress() > 0){
contentText += progressBar.getProgress() + "%";
}
String eta = convertETASecondsToTime(etaInSeconds);
if(!eta.equals("0sec")){
contentText = contentText+ " Estimated Time: " + eta;
}
if(downloadQueue.size() > 0){
contentText = contentText + "\n" + downloadQueue.size() + " items left";
contentText += " " + downloadQueue.size() + " items left\n";
}
contentText += line.replaceAll("\\[.*?\\]", "");
download_notification.setProgress(100,(int) progress,false)
.setContentText(contentText);
@ -172,6 +166,8 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
shimmerCards = fragmentView.findViewById(R.id.shimmer_results_framelayout);
topAppBar = fragmentView.findViewById(R.id.home_toolbar);
downloadQueue = new LinkedList<>();
SwipeRefreshLayout swipeRefreshLayout = fragmentView.findViewById(R.id.swiperefreshhome);
swipeRefreshLayout.setOnRefreshListener(() -> {
initCards();
@ -182,7 +178,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
fab.setOnClickListener(this);
scrollView.setOnScrollChangeListener((view, x, y, oldX, oldY) -> {
if( y > 500){
if(y > 500){
fab.show();
}else{
fab.hide();
@ -246,9 +242,11 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
}
uiHandler.post(() -> {
addEndofResultsText();
shimmerCards.stopShimmer();
shimmerCards.setVisibility(View.GONE);
if(resultObjects.size() > 1){
addEndofResultsText();
}
});
});
thread.start();
@ -327,7 +325,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
if(m.find()){
type = "Video";
if (inputQuery.contains("list=")) {
if (inputQuery.contains("playlist?list=")) {
type = "Playlist";
}
}
@ -372,6 +370,11 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
inputQuery = inputQuery.substring(8);
}
if(inputQuery.contains("&list=")){
el = inputQuery.split("&list=");
inputQuery = el[0];
}
Thread thread = new Thread(new Runnable(){
private final String query;
{
@ -385,8 +388,8 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
Log.e(TAG, e.toString());
}
dbManager.addToResults(resultObjects);
createCard(resultObjects.get(0));
dbManager.addToResults(resultObjects);
new Handler(Looper.getMainLooper()).post(() -> {
shimmerCards.stopShimmer();
@ -540,7 +543,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
if(viewIdName.contains("mp3") || viewIdName.contains("mp4")){
Log.e(TAG, viewIdName);
String[] buttonData = viewIdName.split("##");
downloadQueue = new LinkedList<>();
if(buttonData[0].equals("ALL")){
for (int i = 0; i < resultObjects.size(); i++){
Video vid = findVideo(resultObjects.get(i).getVideoId());
@ -554,6 +556,11 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
downloadQueue.add(vid);
}
if (downloading) {
Toast.makeText(context, R.string.added_to_queue, Toast.LENGTH_LONG).show();
return;
}
startDownload(downloadQueue);
}
@ -587,11 +594,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
return;
}
if (downloading) {
Toast.makeText(context, R.string.download_already_started, Toast.LENGTH_LONG).show();
return;
}
if (!isStoragePermissionGranted()) {
Toast.makeText(context, R.string.try_again_after_permission, Toast.LENGTH_LONG).show();
return;
@ -608,6 +610,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
if(type.equals("mp3")){
request.addOption("--embed-thumbnail");
request.addOption("--sponsorblock-remove", "all");
request.addOption("--postprocessor-args", "-write_id3v1 1 -id3v2_version 3");
request.addOption("--add-metadata");
request.addOption("--no-mtime");
@ -616,6 +619,9 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
clickedButton = linearLayout.findViewWithTag(id+"##mp3");
}else if(type.equals("mp4")){
request.addOption("--embed-thumbnail");
request.addOption("--sponsorblock-mark", "all");
request.addOption("--embed-subs", "");
request.addOption("-f", "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best");
clickedButton = linearLayout.findViewWithTag(id+"##mp4");
@ -641,6 +647,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener{
progressBar.setProgress(0);
progressBar.setVisibility(View.GONE);
notificationManager.cancel(Integer.parseInt(App.DOWNLOAD_CHANNEL_ID));
download_notification.setContentText(getString(R.string.download_success))
.setSmallIcon(android.R.drawable.stat_sys_download_done)
.setLargeIcon(BitmapFactory.decodeResource(this.getResources(), android.R.drawable.stat_sys_download_done))

View file

@ -118,27 +118,27 @@ public class SettingsFragment extends PreferenceFragmentCompat {
String[] pieces = dataValue.split("/");
int index = 1;
String path = "/storage/";
StringBuilder path = new StringBuilder("/storage/");
if(pieces[0].equals("primary")){
path+="emulated/0/";
path.append("emulated/0/");
}else{
path+=pieces[0]+"/";
path.append(pieces[0]).append("/");
}
for(int i = index; i < pieces.length; i++){
path = path + pieces[i] + "/";
path.append(pieces[i]).append("/");
}
Log.e("TEST", path);
p.setSummary(path);
Log.e("TEST", path.toString());
p.setSummary(path.toString());
SharedPreferences sharedPreferences = requireContext().getSharedPreferences("root_preferences", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
switch (requestCode){
case MUSIC_PATH_CODE:
editor.putString("music_path", path);
editor.putString("music_path", path.toString());
break;
case VIDEO_PATH_CODE:
editor.putString("video_path", path);
editor.putString("video_path", path.toString());
break;
}
editor.apply();
@ -146,11 +146,11 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private void updateYoutubeDL() {
if (updating) {
Toast.makeText(getContext(), "Perditesimi eshte kerkuar nje here!", Toast.LENGTH_LONG).show();
Toast.makeText(getContext(), getString(R.string.ytdl_already_updating), Toast.LENGTH_LONG).show();
return;
}
Toast.makeText(getContext(), "Filloi Perditesimi", Toast.LENGTH_SHORT).show();
Toast.makeText(getContext(), getString(R.string.ytdl_updating_started), Toast.LENGTH_SHORT).show();
updating = true;
Disposable disposable = Observable.fromCallable(() -> YoutubeDL.getInstance().updateYoutubeDL(getContext()))
@ -159,10 +159,10 @@ public class SettingsFragment extends PreferenceFragmentCompat {
.subscribe(status -> {
switch (status) {
case DONE:
Toast.makeText(getContext(), "Perditesimi u krye me sukses!", Toast.LENGTH_LONG).show();
Toast.makeText(getContext(), getString(R.string.ytld_update_success), Toast.LENGTH_LONG).show();
break;
case ALREADY_UP_TO_DATE:
Toast.makeText(getContext(), "Je ne versionin e fundit", Toast.LENGTH_LONG).show();
Toast.makeText(getContext(), getString(R.string.you_are_in_latest_version), Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getContext(), status.toString(), Toast.LENGTH_LONG).show();
@ -170,8 +170,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
}
updating = false;
}, e -> {
if(BuildConfig.DEBUG) Log.e(TAG, "Deshtim ne perditesim", e);
Toast.makeText(getContext(), "Deshtim ne perditesim", Toast.LENGTH_LONG).show();
if(BuildConfig.DEBUG) Log.e(TAG, getString(R.string.ytdl_update_failed), e);
Toast.makeText(getContext(), getString(R.string.ytdl_update_failed), Toast.LENGTH_LONG).show();
updating = false;
});
compositeDisposable.add(disposable);

View file

@ -203,12 +203,14 @@ public class YoutubeAPIManager {
while((line = reader.readLine()) != null){
responseContent.append(line);
}
reader.close();
json = new JSONObject(responseContent.toString());
if(json.has("error")){
throw new Exception();
}
}
conn.disconnect();
}catch(Exception e){
Log.e(TAG, e.toString());
}
@ -312,13 +314,12 @@ public class YoutubeAPIManager {
if(minutes.isEmpty()){
if(hours.isEmpty()){
minutes = "0";
}else{
minutes = "00";
}
}
duration = minutes + ":" + seconds;
if(!hours.isEmpty()){
if(Integer.parseInt(minutes) < 10) minutes = "0" + minutes;
duration = hours + ":" + minutes + ":" + seconds;
}

View file

@ -0,0 +1,5 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:textColorPrimary" android:pathData="M9.4,16.6L4.8,12l4.6,-4.6L8,6l-6,6 6,6 1.4,-1.4zM14.6,16.6l4.6,-4.6 -4.6,-4.6L16,6l6,6 -6,6 -1.4,-1.4z"/>
</vector>

View file

@ -1,5 +1,5 @@
<vector android:height="24dp" android:tint="#00A6FF"
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,7h-3v5.5c0,1.38 -1.12,2.5 -2.5,2.5S10,13.88 10,12.5s1.12,-2.5 2.5,-2.5c0.57,0 1.08,0.19 1.5,0.51L14,5h4v2zM4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6z"/>
<path android:fillColor="?android:textColorPrimary" android:pathData="M20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,7h-3v5.5c0,1.38 -1.12,2.5 -2.5,2.5S10,13.88 10,12.5s1.12,-2.5 2.5,-2.5c0.57,0 1.08,0.19 1.5,0.51L14,5h4v2zM4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6z"/>
</vector>

View file

@ -0,0 +1,5 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:textColorPrimary" android:pathData="M21,10.12h-6.78l2.74,-2.82c-2.73,-2.7 -7.15,-2.8 -9.88,-0.1c-2.73,2.71 -2.73,7.08 0,9.79s7.15,2.71 9.88,0C18.32,15.65 19,14.08 19,12.1h2c0,1.98 -0.88,4.55 -2.64,6.29c-3.51,3.48 -9.21,3.48 -12.72,0c-3.5,-3.47 -3.53,-9.11 -0.02,-12.58s9.14,-3.47 12.65,0L21,3V10.12zM12.5,8v4.25l3.5,2.08l-0.72,1.21L11,13V8H12.5z"/>
</vector>

View file

@ -1,5 +1,5 @@
<vector android:height="24dp" android:tint="#00A6FF"
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM12,14.5v-9l6,4.5 -6,4.5z"/>
<path android:fillColor="?android:textColorPrimary" android:pathData="M4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM12,14.5v-9l6,4.5 -6,4.5z"/>
</vector>

View file

@ -10,26 +10,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/history_big_linearlayout">
android:id="@+id/history_big_linearlayout"
android:layout_marginTop="?attr/actionBarSize">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/history_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="@string/history"
app:menu="@menu/history_menu"
/>
</com.google.android.material.appbar.AppBarLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swiperefresh"
android:layout_width="match_parent"
@ -117,4 +101,21 @@
android:visibility="invisible"
app:srcCompat="@drawable/ic_go_up"/>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/history_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="@string/history"
app:menu="@menu/history_menu"
/>
</com.google.android.material.appbar.AppBarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -11,27 +11,9 @@
android:layout_height="match_parent"
android:id="@+id/home_big_linearlayout"
android:orientation="vertical"
android:layout_marginTop="?attr/actionBarSize"
>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/home_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="@string/app_name"
app:menu="@menu/main_menu"
/>
</com.google.android.material.appbar.AppBarLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swiperefreshhome"
android:layout_width="match_parent"
@ -120,4 +102,20 @@
android:visibility="invisible"
app:srcCompat="@drawable/ic_go_up"/>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/home_appbarlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/home_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:title="@string/app_name"
app:menu="@menu/main_menu"
/>
</com.google.android.material.appbar.AppBarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -26,4 +26,10 @@
<string name="download_notification_channel_name">Shkarkimet e Skedarëve</string>
<string name="download_notification_channel_description">Njoftimi i cili tregon progresin e shkarkimeve te skedarëve audio dhe video</string>
<string name="failed_making_directory">Dështim në krijimin e Direktorisë së re! :(</string>
<string name="you_are_in_latest_version">Je ne versionin e fundit</string>
<string name="ytld_update_success">Perditesimi u krye me sukses!</string>
<string name="ytdl_update_failed">Deshtim ne perditesim</string>
<string name="added_to_queue">U vendos në rradhë!</string>
<string name="ytdl_already_updating">Duke u përditësuar. Prisni!</string>
<string name="ytdl_updating_started">Filloi Perditesimi</string>
</resources>

View file

@ -26,4 +26,10 @@
<string name="download_notification_channel_name">File Downloads</string>
<string name="download_notification_channel_description">Notification that shows the download progress of audio and video files</string>
<string name="failed_making_directory">Failed to create the new Directory! :(</string>
<string name="added_to_queue">Item added to the Queue!</string>
<string name="you_are_in_latest_version">You are at the latest version</string>
<string name="ytld_update_success">Updated Succesfully</string>
<string name="ytdl_update_failed">Failed Updating</string>
<string name="ytdl_already_updating">Updating in Progress! Please Wait!</string>
<string name="ytdl_updating_started">Updating Started</string>
</resources>

View file

@ -9,15 +9,18 @@
<PreferenceCategory app:title="@string/directories">
<Preference
app:key="music_path"
app:icon="@drawable/ic_music_downloaded"
app:title="@string/music_directory" />
<Preference
app:key="video_path"
app:icon="@drawable/ic_video_downloaded"
app:title="@string/video_directory" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/updating">
<Preference
app:key="update"
app:icon="@drawable/ic_update"
app:summary="@string/ytdl_update_hint"
app:title="@string/update_ytdl" />
</PreferenceCategory>
@ -27,6 +30,7 @@
<Preference
app:key="rreth"
app:icon="@drawable/ic_code"
app:summary="https://github.com/deniscerri/ytdlnis"
app:title="@string/source_code">
<intent