added themeing for peertube, change peertube instance

This commit is contained in:
Ritvik Saraf 2018-12-29 23:06:39 +05:30
parent 9530af95f4
commit 845663f80f
36 changed files with 140 additions and 4 deletions

View file

@ -18,9 +18,11 @@ import com.nostra13.universalimageloader.core.ImageLoader;
import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.ServiceList;
import org.schabi.newpipe.extractor.utils.Localization;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.FilePickerActivityHelper;
import org.schabi.newpipe.util.ZipHelper;
@ -39,6 +41,9 @@ import java.util.Map;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import io.reactivex.Single;
import io.reactivex.schedulers.Schedulers;
public class ContentSettingsFragment extends BasePreferenceFragment {
private static final int REQUEST_IMPORT_PATH = 8945;
@ -122,6 +127,40 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
NewPipe.setLocalization(new Localization((String) newCountry, oldLocal.getLanguage()));
return true;
});
Preference peerTubeInstance = findPreference(getString(R.string.peertube_instance_url_key));
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
peerTubeInstance.setDefaultValue(sharedPreferences.getString(getString(R.string.peertube_instance_url_key), ServiceList.PeerTube.getBaseUrl()));
peerTubeInstance.setSummary(sharedPreferences.getString(getString(R.string.peertube_instance_url_key), ServiceList.PeerTube.getBaseUrl()));
peerTubeInstance.setOnPreferenceChangeListener((Preference p, Object newInstance) -> {
String url = (String) newInstance;
if(!url.startsWith("https://")){
Toast.makeText(getActivity(), "instance url should start with https://",
Toast.LENGTH_SHORT).show();
return false;
}else{
boolean shouldUpdate = Single.fromCallable(() -> {
ServiceList.PeerTube.setInstance(url);
return true;
}).subscribeOn(Schedulers.io())
.onErrorReturnItem(false)
.blockingGet();
if (shouldUpdate) {
p.setSummary(url);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(getString(R.string.peertube_instance_name_key), ServiceList.PeerTube.getServiceInfo().getName()).apply();
editor.putString(getString(R.string.current_service_key), ServiceList.PeerTube.getServiceInfo().getName()).apply();
editor.putBoolean(Constants.KEY_MAIN_PAGE_CHANGE, true).apply();
}else{
Toast.makeText(getActivity(), "unable to update instance",
Toast.LENGTH_SHORT).show();
}
return shouldUpdate;
}
});
}
@Override