some lastfm fixes

This commit is contained in:
gdlbo
2024-03-01 22:50:31 +03:00
parent 5ac3b9cf6e
commit 5466dd72dd
4 changed files with 27 additions and 43 deletions
@@ -14,6 +14,7 @@ import ru.vtosters.hooks.other.Preferences;
import ru.vtosters.lite.di.singleton.VtOkHttpClient;
import ru.vtosters.lite.downloaders.AudioDownloader;
import ru.vtosters.lite.music.cache.MusicCacheImpl;
import ru.vtosters.lite.ui.fragments.MusicFragment;
import ru.vtosters.lite.utils.AndroidUtils;
import java.io.IOException;
@@ -83,12 +84,12 @@ public class LastFMScrobbler {
params.put("sk", getSessionKey());
params.put("artist[0]", artist);
params.put("track[0]", title);
if (!TextUtils.isEmpty(album))
if (!TextUtils.isEmpty(album)) {
params.put("album[0]", album);
}
params.put("duration[0]", String.valueOf(duration));
params.put("timestamp[0]", String.valueOf(System.currentTimeMillis() / 1000));
fetch(params, new Callback() {
@Override
public void a(Call call, IOException e) {
@@ -150,8 +151,9 @@ public class LastFMScrobbler {
params.put("format", "json");
var reqBodyBuilder = new FormBody.a(StandardCharsets.UTF_8);
for (var entry : params.entrySet())
for (var entry : params.entrySet()) {
reqBodyBuilder.a(entry.getKey(), entry.getValue());
}
var req = new Request.a()
.b(URL)
@@ -164,6 +166,7 @@ public class LastFMScrobbler {
public static void fetchSession(JSONObject json) throws JSONException {
if (!json.has("session")) {
Log.d("Scrobbler", "Auth failed - no session");
AndroidUtils.sendToast("Ошибка входа");
return;
}
@@ -177,6 +180,8 @@ public class LastFMScrobbler {
.putBoolean("lastfm_enabled", true)
.apply();
AndroidUtils.sendToast("Успешный вход");
Log.d("Scrobbler", "Auth success as " + name + ", key " + key);
}
@@ -375,4 +375,4 @@ public class DataSettingsFragment extends TrackedMaterialPreferenceToolbarFragme
super.onResume();
updateCacheSize();
}
}
}
@@ -1,7 +1,6 @@
package ru.vtosters.lite.ui.fragments;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
@@ -23,16 +22,13 @@ import ru.vtosters.lite.proxy.ProxyUtils;
import ru.vtosters.lite.ui.adapters.ImagineArrayAdapter;
import ru.vtosters.lite.utils.AccountManagerUtils;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.LifecycleUtils;
import ru.vtosters.lite.utils.SearchEngine;
import java.util.Arrays;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MediaFragment extends TrackedMaterialPreferenceToolbarFragment {
public static void download(Context ctx) {
final EditText input = new EditText(ctx);
EditText input = new EditText(ctx);
input.setTextColor(ThemesUtils.getTextAttr());
input.setBackgroundTintList(ThemesUtils.getAccenedColorStateList());
@@ -56,26 +52,7 @@ public class MediaFragment extends TrackedMaterialPreferenceToolbarFragment {
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
addPreferencesFromResource(R.xml.preferences_media);
prefs();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
@Override
public void onResume() {
super.onResume();
prefs();
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
findPreference("maxquality").setEnabled(Preferences.isEnableExternalOpening());
return super.onPreferenceTreeClick(preference);
}
private void prefs() {
findPreference("download_video").setOnPreferenceClickListener(preference -> {
download(requireContext());
@@ -115,6 +92,12 @@ public class MediaFragment extends TrackedMaterialPreferenceToolbarFragment {
findPreference("maxquality").setEnabled(Preferences.isEnableExternalOpening());
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
findPreference("maxquality").setEnabled(Preferences.isEnableExternalOpening());
return super.onPreferenceTreeClick(preference);
}
public void deleteVideoHistory() {
VTExecutors.getIoExecutor().execute(() -> {
var request = new Request.a()
@@ -145,6 +145,7 @@ public class MusicFragment extends TrackedMaterialPreferenceToolbarFragment {
} else {
lastfmAuth(getContext());
}
updateLastFmPref();
return true;
}
);
@@ -224,21 +225,6 @@ public class MusicFragment extends TrackedMaterialPreferenceToolbarFragment {
getPreferenceScreen().addPreference(list);
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
return super.onPreferenceTreeClick(preference);
}
@Override
public void onResume() {
super.onResume();
if (LastFMScrobbler.isLoggedIn() && !Preferences.serverFeaturesDisable()) {
findPreference("lastfm_auth").setSummary(getString(com.vtosters.lite.R.string.lastfm_authorized_as) + " " + LastFMScrobbler.getUserName());
findPreference("lastfm_enabled").setEnabled(true);
}
}
private void lastfmAuth(Context ctx) {
LinearLayout linearLayout = new LinearLayout(ctx);
linearLayout.setOrientation(LinearLayout.VERTICAL);
@@ -276,6 +262,16 @@ public class MusicFragment extends TrackedMaterialPreferenceToolbarFragment {
.show();
}
public void updateLastFmPref() {
if (LastFMScrobbler.isLoggedIn()) {
findPreference("lastfm_auth").setSummary(getString(com.vtosters.lite.R.string.lastfm_authorized_as) + " " + LastFMScrobbler.getUserName());
findPreference("lastfm_enabled").setEnabled(true);
} else {
findPreference("lastfm_auth").setSummary(getString(com.vtosters.lite.R.string.lastfm_auth_summ));
findPreference("lastfm_enabled").setEnabled(false);
}
}
private void logout(Context ctx) {
new VkAlertDialog.Builder(ctx)
.setTitle(com.vtosters.lite.R.string.lastfm_logout_title)