102 lines
3.6 KiB
Java
102 lines
3.6 KiB
Java
package org.schabi.newpipe.util;
|
|
|
|
import android.content.Context;
|
|
import android.preference.PreferenceManager;
|
|
import android.support.annotation.DrawableRes;
|
|
import android.support.annotation.StringRes;
|
|
|
|
import org.schabi.newpipe.BuildConfig;
|
|
import org.schabi.newpipe.R;
|
|
import org.schabi.newpipe.extractor.NewPipe;
|
|
import org.schabi.newpipe.extractor.ServiceList;
|
|
import org.schabi.newpipe.extractor.StreamingService;
|
|
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
|
|
|
public class ServiceHelper {
|
|
private static final StreamingService DEFAULT_FALLBACK_SERVICE = ServiceList.YouTube;
|
|
|
|
@DrawableRes
|
|
public static int getIcon(int serviceId) {
|
|
switch (serviceId) {
|
|
case 0:
|
|
return R.drawable.place_holder_youtube;
|
|
case 1:
|
|
return R.drawable.place_holder_circle;
|
|
default:
|
|
return R.drawable.service;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get a resource string with instructions for importing subscriptions for each service.
|
|
*
|
|
* @return the string resource containing the instructions or -1 if the service don't support it
|
|
*/
|
|
@StringRes
|
|
public static int getImportInstructions(int serviceId) {
|
|
switch (serviceId) {
|
|
case 0:
|
|
return R.string.import_youtube_instructions;
|
|
case 1:
|
|
return R.string.import_soundcloud_instructions;
|
|
default:
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* For services that support importing from a channel url, return a hint that will
|
|
* be used in the EditText that the user will type in his channel url.
|
|
*
|
|
* @return the hint's string resource or -1 if the service don't support it
|
|
*/
|
|
@StringRes
|
|
public static int getImportInstructionsHint(int serviceId) {
|
|
switch (serviceId) {
|
|
case 1:
|
|
return R.string.import_soundcloud_instructions_hint;
|
|
default:
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
public static int getSelectedServiceId(Context context) {
|
|
if (BuildConfig.BUILD_TYPE.equals("release")) return DEFAULT_FALLBACK_SERVICE.getServiceId();
|
|
|
|
final String serviceName = PreferenceManager.getDefaultSharedPreferences(context)
|
|
.getString(context.getString(R.string.current_service_key), context.getString(R.string.default_service_value));
|
|
|
|
int serviceId;
|
|
try {
|
|
serviceId = NewPipe.getService(serviceName).getServiceId();
|
|
} catch (ExtractionException e) {
|
|
serviceId = DEFAULT_FALLBACK_SERVICE.getServiceId();
|
|
}
|
|
|
|
return serviceId;
|
|
}
|
|
|
|
public static void setSelectedServiceId(Context context, int serviceId) {
|
|
String serviceName;
|
|
try {
|
|
serviceName = NewPipe.getService(serviceId).getServiceInfo().getName();
|
|
} catch (ExtractionException e) {
|
|
serviceName = DEFAULT_FALLBACK_SERVICE.getServiceInfo().getName();
|
|
}
|
|
|
|
setSelectedServicePreferences(context, serviceName);
|
|
}
|
|
|
|
public static void setSelectedServiceId(Context context, String serviceName) {
|
|
int serviceId = NewPipe.getIdOfService(serviceName);
|
|
if (serviceId == -1) serviceName = DEFAULT_FALLBACK_SERVICE.getServiceInfo().getName();
|
|
|
|
setSelectedServicePreferences(context, serviceName);
|
|
}
|
|
|
|
private static void setSelectedServicePreferences(Context context, String serviceName) {
|
|
PreferenceManager.getDefaultSharedPreferences(context).edit().
|
|
putString(context.getString(R.string.current_service_key), serviceName).apply();
|
|
}
|
|
}
|