From c0ce14dba56dd551657dc8a4d401c68552d08961 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Mon, 25 Jul 2016 11:12:54 +0200 Subject: [PATCH] moved on to new sdk, and put settings activity result into its fragment --- app/build.gradle | 10 +- .../org/schabi/newpipe/SettingsActivity.java | 60 +----------- .../org/schabi/newpipe/SettingsFragment.java | 92 +++++++++++++++++-- .../main/res/layout/against_drm_fragment.xml | 12 --- 4 files changed, 93 insertions(+), 81 deletions(-) delete mode 100644 app/src/main/res/layout/against_drm_fragment.xml diff --git a/app/build.gradle b/app/build.gradle index 443ec0fcb..446ea37a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,7 +7,7 @@ android { defaultConfig { applicationId "org.schabi.newpipe" minSdkVersion 15 - targetSdkVersion 23 + targetSdkVersion 24 versionCode 18 versionName "0.8.0" } @@ -31,10 +31,10 @@ android { } dependencies { - compile 'com.android.support:appcompat-v7:24.1.0' - compile 'com.android.support:support-v4:24.1.0' - compile 'com.android.support:design:24.1.0' - compile 'com.android.support:recyclerview-v7:24.1.0' + compile 'com.android.support:appcompat-v7:24.1.1' + compile 'com.android.support:support-v4:24.1.1' + compile 'com.android.support:design:24.1.1' + compile 'com.android.support:recyclerview-v7:24.1.1' compile 'org.jsoup:jsoup:1.8.3' compile 'org.mozilla:rhino:1.7.7' compile 'info.guardianproject.netcipher:netcipher:1.2' diff --git a/app/src/main/java/org/schabi/newpipe/SettingsActivity.java b/app/src/main/java/org/schabi/newpipe/SettingsActivity.java index e9c4a4870..3eb982f06 100644 --- a/app/src/main/java/org/schabi/newpipe/SettingsActivity.java +++ b/app/src/main/java/org/schabi/newpipe/SettingsActivity.java @@ -10,7 +10,6 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceActivity; -import android.preference.PreferenceManager; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.v7.app.ActionBar; @@ -20,11 +19,6 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import com.nononsenseapps.filepicker.FilePickerActivity; - -import java.util.ArrayList; - -import info.guardianproject.netcipher.proxy.OrbotHelper; /** * Created by Christian Schabesberger on 31.08.15. @@ -47,9 +41,8 @@ import info.guardianproject.netcipher.proxy.OrbotHelper; */ public class SettingsActivity extends PreferenceActivity { - - public static final int REQUEST_INSTALL_ORBOT = 0x1234; private AppCompatDelegate mDelegate = null; + SettingsFragment f = new SettingsFragment(); @Override protected void onCreate(Bundle savedInstanceBundle) { @@ -63,61 +56,14 @@ public class SettingsActivity extends PreferenceActivity { actionBar.setDisplayShowTitleEnabled(true); getFragmentManager().beginTransaction() - .replace(android.R.id.content, new SettingsFragment()) + .replace(android.R.id.content, f) .commit(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - - if ((requestCode == R.string.download_path_audio_key - || requestCode == R.string.download_path_key) - && resultCode == Activity.RESULT_OK) { - - Uri uri = null; - if (data.getBooleanExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false)) { - // For JellyBean and above - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - ClipData clip = data.getClipData(); - - if (clip != null) { - for (int i = 0; i < clip.getItemCount(); i++) { - uri = clip.getItemAt(i).getUri(); - } - } - // For Ice Cream Sandwich - } else { - ArrayList paths = data.getStringArrayListExtra - (FilePickerActivity.EXTRA_PATHS); - - if (paths != null) { - for (String path: paths) { - uri = Uri.parse(path); - } - } - } - } else { - uri = data.getData(); - } - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - - //requestCode is equal to R.string.download_path_key or - //R.string.download_path_audio_key - String key = getString(requestCode); - String path = data.getData().toString().substring(7); - prefs.edit() - .putString(key, path) - .commit(); - } - else if(requestCode == REQUEST_INSTALL_ORBOT) - { - // try to start tor regardless of resultCode since clicking back after - // installing the app does not necessarily return RESULT_OK - App.configureTor(requestCode == REQUEST_INSTALL_ORBOT - && OrbotHelper.requestStartTor(this)); - - } super.onActivityResult(requestCode, resultCode, data); + f.onActivityResult(requestCode, resultCode, data); } @Override diff --git a/app/src/main/java/org/schabi/newpipe/SettingsFragment.java b/app/src/main/java/org/schabi/newpipe/SettingsFragment.java index 916d9d6b1..be44e164a 100644 --- a/app/src/main/java/org/schabi/newpipe/SettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/SettingsFragment.java @@ -1,8 +1,11 @@ package org.schabi.newpipe; import android.app.Activity; +import android.content.ClipData; import android.content.Intent; import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; @@ -13,11 +16,30 @@ import android.preference.PreferenceScreen; import com.nononsenseapps.filepicker.FilePickerActivity; +import java.util.ArrayList; + import info.guardianproject.netcipher.proxy.OrbotHelper; /** * Created by david on 15/06/16. + * + * Copyright (C) Christian Schabesberger 2016 + * SettingsFragment.java is part of NewPipe. + * + * NewPipe is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * NewPipe is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NewPipe. If not, see . */ + public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -31,12 +53,13 @@ public class SettingsFragment extends PreferenceFragment String DOWNLOAD_PATH_AUDIO_PREFERENCE; String USE_TOR_KEY; + public static final int REQUEST_INSTALL_ORBOT = 0x1234; + private ListPreference defaultResolutionPreference; private ListPreference defaultAudioFormatPreference; private ListPreference searchLanguagePreference; private Preference downloadPathPreference; private Preference downloadPathAudioPreference; - private CheckBoxPreference useTorCheckBox; private SharedPreferences defaultPreferences; @@ -66,7 +89,6 @@ public class SettingsFragment extends PreferenceFragment (ListPreference) findPreference(SEARCH_LANGUAGE_PREFERENCE); downloadPathPreference = findPreference(DOWNLOAD_PATH_PREFERENCE); downloadPathAudioPreference = findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE); - useTorCheckBox = (CheckBoxPreference) findPreference(USE_TOR_KEY); prefListener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override @@ -87,7 +109,7 @@ public class SettingsFragment extends PreferenceFragment OrbotHelper.requestStartTor(a); } else { Intent intent = OrbotHelper.getOrbotInstallIntent(a); - a.startActivityForResult(intent, SettingsActivity.REQUEST_INSTALL_ORBOT); + a.startActivityForResult(intent, REQUEST_INSTALL_ORBOT); } } else { App.configureTor(false); @@ -119,8 +141,8 @@ public class SettingsFragment extends PreferenceFragment @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { - if(preference.getKey() == downloadPathPreference.getKey() || - preference.getKey() == downloadPathAudioPreference.getKey()) + if(preference.getKey().equals(downloadPathPreference.getKey()) || + preference.getKey().equals(downloadPathAudioPreference.getKey())) { Activity activity = getActivity(); Intent i = new Intent(activity, FilePickerActivity.class); @@ -128,11 +150,11 @@ public class SettingsFragment extends PreferenceFragment i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false); i.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, true); i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR); - if(preference.getKey() == downloadPathPreference.getKey()) + if(preference.getKey().equals(downloadPathPreference.getKey())) { activity.startActivityForResult(i, R.string.download_path_key); } - else if (preference.getKey() == downloadPathAudioPreference.getKey()) + else if (preference.getKey().equals(downloadPathAudioPreference.getKey())) { activity.startActivityForResult(i, R.string.download_path_audio_key); } @@ -141,6 +163,62 @@ public class SettingsFragment extends PreferenceFragment return super.onPreferenceTreeClick(preferenceScreen, preference); } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + Activity a = getActivity(); + + if ((requestCode == R.string.download_path_audio_key + || requestCode == R.string.download_path_key) + && resultCode == Activity.RESULT_OK) { + + Uri uri = null; + if (data.getBooleanExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false)) { + // For JellyBean and above + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + ClipData clip = data.getClipData(); + + if (clip != null) { + for (int i = 0; i < clip.getItemCount(); i++) { + uri = clip.getItemAt(i).getUri(); + } + } + // For Ice Cream Sandwich + } else { + ArrayList paths = data.getStringArrayListExtra + (FilePickerActivity.EXTRA_PATHS); + + if (paths != null) { + for (String path: paths) { + uri = Uri.parse(path); + } + } + } + } else { + uri = data.getData(); + } + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(a); + + //requestCode is equal to R.string.download_path_key or + //R.string.download_path_audio_key + String key = getString(requestCode); + String path = data.getData().toString().substring(7); + prefs.edit() + .putString(key, path) + .apply(); + + } + else if(requestCode == REQUEST_INSTALL_ORBOT) + { + // try to start tor regardless of resultCode since clicking back after + // installing the app does not necessarily return RESULT_OK + App.configureTor(requestCode == REQUEST_INSTALL_ORBOT + && OrbotHelper.requestStartTor(a)); + + } + super.onActivityResult(requestCode, resultCode, data); + } + // This is used to show the status of some preference in the description private void updateSummary() { defaultResolutionPreference.setSummary( diff --git a/app/src/main/res/layout/against_drm_fragment.xml b/app/src/main/res/layout/against_drm_fragment.xml deleted file mode 100644 index be73ca72a..000000000 --- a/app/src/main/res/layout/against_drm_fragment.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file