aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java346
1 files changed, 157 insertions, 189 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
index 167f3dd7..1063c72e 100644
--- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
+++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java
@@ -19,20 +19,21 @@
package github.daneren2005.dsub.activity;
import android.Manifest;
-import android.app.UiModeManager;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
-import android.content.res.Configuration;
import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import com.google.android.material.navigation.NavigationView;
+
+import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.appcompat.app.ActionBarDrawerToggle;
@@ -49,10 +50,8 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
@@ -67,6 +66,7 @@ import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import github.daneren2005.dsub.R;
import github.daneren2005.dsub.domain.ServerInfo;
@@ -103,7 +103,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
private boolean drawerIdle = true;
private boolean destroyed = false;
private boolean finished = false;
- protected List<SubsonicFragment> backStack = new ArrayList<SubsonicFragment>();
+ protected List<SubsonicFragment> backStack = new ArrayList<>();
protected SubsonicFragment currentFragment;
protected View primaryContainer;
protected View secondaryContainer;
@@ -111,7 +111,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
protected boolean touchscreen = true;
protected Handler handler = new Handler();
Spinner actionBarSpinner;
- ArrayAdapter<CharSequence> spinnerAdapter;
+ ArrayAdapter<String> spinnerAdapter;
ViewGroup rootView;
DrawerLayout drawer;
ActionBarDrawerToggle drawerToggle;
@@ -127,15 +127,11 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
SharedPreferences.OnSharedPreferenceChangeListener preferencesListener;
static {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
}
@Override
protected void onCreate(Bundle bundle) {
- UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
- if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
- // tv = true;
- }
PackageManager pm = getPackageManager();
if(!pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN)) {
touchscreen = false;
@@ -153,30 +149,27 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
if(preferencesListener == null) {
- preferencesListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- // When changing drawer settings change visibility
- switch(key) {
- case Constants.PREFERENCES_KEY_PODCASTS_ENABLED:
- setDrawerItemVisible(R.id.drawer_podcasts, false);
- break;
- case Constants.PREFERENCES_KEY_BOOKMARKS_ENABLED:
- setDrawerItemVisible(R.id.drawer_bookmarks, false);
- break;
- case Constants.PREFERENCES_KEY_INTERNET_RADIO_ENABLED:
- setDrawerItemVisible(R.id.drawer_internet_radio_stations, false);
- break;
- case Constants.PREFERENCES_KEY_SHARED_ENABLED:
- setDrawerItemVisible(R.id.drawer_shares, false);
- break;
- case Constants.PREFERENCES_KEY_CHAT_ENABLED:
- setDrawerItemVisible(R.id.drawer_chat, false);
- break;
- case Constants.PREFERENCES_KEY_ADMIN_ENABLED:
- setDrawerItemVisible(R.id.drawer_admin, false);
- break;
- }
+ preferencesListener = (sharedPreferences, key) -> {
+ // When changing drawer settings change visibility
+ switch(key) {
+ case Constants.PREFERENCES_KEY_PODCASTS_ENABLED:
+ setDrawerItemVisible(R.id.drawer_podcasts, false);
+ break;
+ case Constants.PREFERENCES_KEY_BOOKMARKS_ENABLED:
+ setDrawerItemVisible(R.id.drawer_bookmarks, false);
+ break;
+ case Constants.PREFERENCES_KEY_INTERNET_RADIO_ENABLED:
+ setDrawerItemVisible(R.id.drawer_internet_radio_stations, false);
+ break;
+ case Constants.PREFERENCES_KEY_SHARED_ENABLED:
+ setDrawerItemVisible(R.id.drawer_shares, false);
+ break;
+ case Constants.PREFERENCES_KEY_CHAT_ENABLED:
+ setDrawerItemVisible(R.id.drawer_chat, false);
+ break;
+ case Constants.PREFERENCES_KEY_ADMIN_ENABLED:
+ setDrawerItemVisible(R.id.drawer_admin, false);
+ break;
}
};
Util.getPreferences(this).registerOnSharedPreferenceChangeListener(preferencesListener);
@@ -199,22 +192,19 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
@Override
- public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: {
// If request is cancelled, the result arrays are empty.
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
-
- } else {
+ if (grantResults.length <= 0 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
Util.toast(this, R.string.permission_external_storage_failed);
finish();
}
}
case PERMISSIONS_REQUEST_LOCATION: {
// If request is cancelled, the result arrays are empty.
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
-
- } else {
+ if (grantResults.length <= 0 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
Util.toast(this, R.string.permission_location_failed);
}
}
@@ -228,7 +218,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
if(spinnerAdapter == null) {
createCustomActionBarView();
}
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
// Sync the toggle state after onRestoreInstanceState has occurred.
@@ -245,15 +235,17 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
protected void createCustomActionBarView() {
actionBarSpinner = (Spinner) getLayoutInflater().inflate(R.layout.actionbar_spinner, null);
- if((this instanceof SubsonicFragmentActivity || this instanceof SettingsActivity) && (Util.getPreferences(this).getBoolean(Constants.PREFERENCES_KEY_COLOR_ACTION_BAR, true) || ThemeUtil.getThemeRes(this) != R.style.Theme_DSub_Light_No_Color)) {
- actionBarSpinner.setBackgroundDrawable(DrawableTint.getTintedDrawableFromColor(this, R.drawable.abc_spinner_mtrl_am_alpha, android.R.color.white));
+ if((this instanceof SubsonicFragmentActivity || this instanceof SettingsActivity)
+ && (Util.getPreferences(this).getBoolean(Constants.PREFERENCES_KEY_COLOR_ACTION_BAR, true)
+ || ThemeUtil.getThemeRes(this) != R.style.Theme_DSub_Light_No_Color)) {
+ actionBarSpinner.setBackground(DrawableTint.getTintedDrawableFromColor(this, R.drawable.abc_spinner_mtrl_am_alpha, android.R.color.white));
}
- spinnerAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item);
+ spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBarSpinner.setOnItemSelectedListener(this);
actionBarSpinner.setAdapter(spinnerAdapter);
- getSupportActionBar().setCustomView(actionBarSpinner);
+ Objects.requireNonNull(getSupportActionBar()).setCustomView(actionBarSpinner);
}
@Override
@@ -303,6 +295,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
Util.disablePendingTransition(this);
}
+ @SuppressLint("ClickableViewAccessibility")
@Override
public void setContentView(int viewId) {
if(isTv()) {
@@ -320,88 +313,79 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
drawerList = (NavigationView) findViewById(R.id.left_drawer);
- drawerList.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
- @Override
- public boolean onNavigationItemSelected(final MenuItem menuItem) {
- if(showingTabs) {
- // Settings are on a different selectable track
- if (menuItem.getItemId() != R.id.drawer_settings && menuItem.getItemId() != R.id.drawer_admin && menuItem.getItemId() != R.id.drawer_offline) {
+ drawerList.setNavigationItemSelectedListener(menuItem -> {
+ if(showingTabs) {
+ // Settings are on a different selectable track
+ if (menuItem.getItemId() != R.id.drawer_settings && menuItem.getItemId() != R.id.drawer_admin && menuItem.getItemId() != R.id.drawer_offline) {
+ menuItem.setChecked(true);
+ lastSelectedPosition = menuItem.getItemId();
+ }
+
+ int id = menuItem.getItemId();
+ if (id == R.id.drawer_home) {
+ drawerItemSelected("Home");
+ return true;
+ } else if (id == R.id.drawer_library) {
+ drawerItemSelected("Artist");
+ return true;
+ } else if (id == R.id.drawer_playlists) {
+ drawerItemSelected("Playlist");
+ return true;
+ } else if (id == R.id.drawer_podcasts) {
+ drawerItemSelected("Podcast");
+ return true;
+ } else if (id == R.id.drawer_bookmarks) {
+ drawerItemSelected("Bookmark");
+ return true;
+ } else if (id == R.id.drawer_internet_radio_stations) {
+ drawerItemSelected("Internet Radio");
+ return true;
+ } else if (id == R.id.drawer_shares) {
+ drawerItemSelected("Share");
+ return true;
+ } else if (id == R.id.drawer_chat) {
+ drawerItemSelected("Chat");
+ return true;
+ } else if (id == R.id.drawer_admin) {
+ if (UserUtil.isCurrentAdmin()) {
+ UserUtil.confirmCredentials(SubsonicActivity.this, () -> {
+ drawerItemSelected("Admin");
+ menuItem.setChecked(true);
+ lastSelectedPosition = menuItem.getItemId();
+ });
+ } else {
+ drawerItemSelected("Admin");
menuItem.setChecked(true);
lastSelectedPosition = menuItem.getItemId();
}
-
- switch (menuItem.getItemId()) {
- case R.id.drawer_home:
- drawerItemSelected("Home");
- return true;
- case R.id.drawer_library:
- drawerItemSelected("Artist");
- return true;
- case R.id.drawer_playlists:
- drawerItemSelected("Playlist");
- return true;
- case R.id.drawer_podcasts:
- drawerItemSelected("Podcast");
- return true;
- case R.id.drawer_bookmarks:
- drawerItemSelected("Bookmark");
- return true;
- case R.id.drawer_internet_radio_stations:
- drawerItemSelected("Internet Radio");
- return true;
- case R.id.drawer_shares:
- drawerItemSelected("Share");
- return true;
- case R.id.drawer_chat:
- drawerItemSelected("Chat");
- return true;
- case R.id.drawer_admin:
- if (UserUtil.isCurrentAdmin()) {
- UserUtil.confirmCredentials(SubsonicActivity.this, new Runnable() {
- @Override
- public void run() {
- drawerItemSelected("Admin");
- menuItem.setChecked(true);
- lastSelectedPosition = menuItem.getItemId();
- }
- });
- } else {
- drawerItemSelected("Admin");
- menuItem.setChecked(true);
- lastSelectedPosition = menuItem.getItemId();
- }
- return true;
- case R.id.drawer_downloading:
- drawerItemSelected("Download");
- return true;
- case R.id.drawer_offline:
- toggleOffline();
- return true;
- case R.id.drawer_settings:
- startActivity(new Intent(SubsonicActivity.this, SettingsActivity.class));
- drawer.closeDrawers();
- return true;
- }
- } else {
- int activeServer = menuItem.getItemId() - MENU_ITEM_SERVER_BASE;
- SubsonicActivity.this.setActiveServer(activeServer);
- populateTabs();
return true;
+ } else if (id == R.id.drawer_downloading) {
+ drawerItemSelected("Download");
+ return true;
+ } else if (id == R.id.drawer_offline) {
+ toggleOffline();
+ return true;
+ } else if (id == R.id.drawer_settings) {
+ startActivity(new Intent(SubsonicActivity.this, SettingsActivity.class));
+ drawer.closeDrawers();
+ return true;
}
-
- return false;
+ } else {
+ int activeServer = menuItem.getItemId() - MENU_ITEM_SERVER_BASE;
+ SubsonicActivity.this.setActiveServer(activeServer);
+ populateTabs();
+ return true;
}
+
+ return false;
});
drawerHeader = drawerList.inflateHeaderView(R.layout.drawer_header);
- drawerHeader.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(showingTabs) {
- populateServers();
- } else {
- populateTabs();
- }
+ drawerHeader.setOnClickListener(v -> {
+ if(showingTabs) {
+ populateServers();
+ } else {
+ populateTabs();
}
});
@@ -448,16 +432,14 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
drawerIdle = false;
}
};
- drawer.setDrawerListener(drawerToggle);
+ drawer.addDrawerListener(drawerToggle);
drawerToggle.setDrawerIndicatorEnabled(true);
- drawer.setOnTouchListener(new View.OnTouchListener() {
- public boolean onTouch(View v, MotionEvent event) {
- if (drawerIdle && currentFragment != null && currentFragment.getGestureDetector() != null) {
- return currentFragment.getGestureDetector().onTouchEvent(event);
- } else {
- return false;
- }
+ drawer.setOnTouchListener((v, event) -> {
+ if (drawerIdle && currentFragment != null && currentFragment.getGestureDetector() != null) {
+ return currentFragment.getGestureDetector().onTouchEvent(event);
+ } else {
+ return false;
}
});
}
@@ -470,7 +452,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
@Override
- public void onSaveInstanceState(Bundle savedInstanceState) {
+ public void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
String[] ids = new String[backStack.size() + 1];
ids[0] = currentFragment.getTag();
@@ -490,17 +472,23 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
String[] ids = savedInstanceState.getStringArray(Constants.MAIN_BACK_STACK);
FragmentManager fm = getSupportFragmentManager();
currentFragment = (SubsonicFragment)fm.findFragmentByTag(ids[0]);
- currentFragment.setPrimaryFragment(true);
- currentFragment.setSupportTag(ids[0]);
+ if (currentFragment != null) {
+ currentFragment.setPrimaryFragment(true);
+ currentFragment.setSupportTag(ids[0]);
+ }
supportInvalidateOptionsMenu();
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
for(int i = 1; i < size; i++) {
SubsonicFragment frag = (SubsonicFragment)fm.findFragmentByTag(ids[i]);
- frag.setSupportTag(ids[i]);
- if(secondaryContainer != null) {
+ if (frag != null) {
+ frag.setSupportTag(ids[i]);
+ }
+ if(frag != null && secondaryContainer != null) {
frag.setPrimaryFragment(false, true);
}
- trans.hide(frag);
+ if(frag != null) {
+ trans.hide(frag);
+ }
backStack.add(frag);
}
trans.commit();
@@ -599,7 +587,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
}
public void setSubtitle(CharSequence title) {
- getSupportActionBar().setSubtitle(title);
+ Objects.requireNonNull(getSupportActionBar()).setSubtitle(title);
}
@Override
@@ -771,10 +759,12 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
currentFragment.setPrimaryFragment(true);
supportInvalidateOptionsMenu();
- if(secondaryContainer == null || oldFragment.isAlwaysFullscreen() || currentFragment.isAlwaysStartFullscreen()) {
+ if(secondaryContainer == null || Objects.requireNonNull(oldFragment).isAlwaysFullscreen() || currentFragment.isAlwaysStartFullscreen()) {
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right);
- trans.hide(oldFragment);
+ if (oldFragment != null) {
+ trans.hide(oldFragment);
+ }
trans.add(R.id.fragment_container, fragment, tag + "");
trans.commit();
} else {
@@ -787,9 +777,9 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
if(backStack.size() > 1) {
// Move old right to left if there is a backstack already
SubsonicFragment newLeftFragment = backStack.get(backStack.size() - 1);
- if(replaceCurrent) {
- // trans.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right);
- }
+// if(replaceCurrent) {
+// trans.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right);
+// }
trans.remove(newLeftFragment);
// Only move right to left if replaceCurrent is false
@@ -911,7 +901,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
if(currentFragment == null || currentFragment.getTitle() == null) {
return;
}
- if(spinnerAdapter == null || getSupportActionBar().getCustomView() == null) {
+ if(spinnerAdapter == null || Objects.requireNonNull(getSupportActionBar()).getCustomView() == null) {
createCustomActionBarView();
}
@@ -921,30 +911,30 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
for(int i = 0; i < backStack.size(); i++) {
CharSequence title = backStack.get(i).getTitle();
if(title != null) {
- spinnerAdapter.add(title);
+ spinnerAdapter.add(title.toString());
} else {
spinnerAdapter.add("null");
}
}
if(currentFragment.getTitle() != null) {
- spinnerAdapter.add(currentFragment.getTitle());
+ spinnerAdapter.add(currentFragment.getTitle().toString());
} else {
spinnerAdapter.add("null");
}
spinnerAdapter.notifyDataSetChanged();
actionBarSpinner.setSelection(spinnerAdapter.getCount() - 1);
if(!isTv()) {
- getSupportActionBar().setDisplayShowTitleEnabled(false);
+ Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayShowCustomEnabled(true);
}
if(drawerToggle.isDrawerIndicatorEnabled()) {
- getSupportActionBar().setDisplayHomeAsUpEnabled(false);
+ Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(false);
drawerToggle.setDrawerIndicatorEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
} else if(!isTv()) {
- getSupportActionBar().setDisplayShowTitleEnabled(true);
+ Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(currentFragment.getTitle());
getSupportActionBar().setDisplayShowCustomEnabled(false);
drawerToggle.setDrawerIndicatorEnabled(true);
@@ -971,7 +961,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
private void applyTheme() {
theme = ThemeUtil.getTheme(this);
- if(theme != null && theme.indexOf("fullscreen") != -1) {
+ if(theme != null && theme.contains("fullscreen")) {
theme = theme.substring(0, theme.indexOf("_fullscreen"));
ThemeUtil.setTheme(this, theme);
}
@@ -983,15 +973,11 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
fullScreen = Util.getPreferences(this).getBoolean(Constants.PREFERENCES_KEY_FULL_SCREEN, false);
if(fullScreen || isTv()) {
// Hide additional elements on higher Android versions
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- int flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
- View.SYSTEM_UI_FLAG_FULLSCREEN |
- View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
-
- getWindow().getDecorView().setSystemUiVisibility(flags);
- } else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
- getWindow().requestFeature(Window.FEATURE_NO_TITLE);
- }
+ int flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
+ View.SYSTEM_UI_FLAG_FULLSCREEN |
+ View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+
+ getWindow().getDecorView().setSystemUiVisibility(flags);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
@@ -1048,12 +1034,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
private void checkIfServiceAvailable() {
if(getDownloadService() == null) {
- handler.postDelayed(new Runnable() {
- @Override
- public void run() {
- checkIfServiceAvailable();
- }
- }, 50);
+ handler.postDelayed(this::checkIfServiceAvailable, 50);
} else if(afterServiceAvailable.size() > 0) {
for(Runnable runnable: afterServiceAvailable) {
handler.post(runnable);
@@ -1086,7 +1067,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
if (service != null) {
new SilentBackgroundTask<Void>(this) {
@Override
- protected Void doInBackground() throws Throwable {
+ protected Void doInBackground() {
service.clearIncomplete();
return null;
}
@@ -1159,28 +1140,17 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
.setTitle(R.string.offline_sync_dialog_title)
.setMessage(this.getResources().getString(R.string.offline_sync_dialog_message, scrobbleCount, starsCount))
.setView(checkBoxView)
- .setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- if(checkBox.isChecked()) {
- Util.setSyncDefault(SubsonicActivity.this, "sync");
- }
- syncOffline(scrobbleCount, starsCount);
+ .setPositiveButton(R.string.common_ok, (dialogInterface, i) -> {
+ if(checkBox.isChecked()) {
+ Util.setSyncDefault(SubsonicActivity.this, "sync");
}
- }).setNeutralButton(R.string.common_cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- dialogInterface.dismiss();
- }
- }).setNegativeButton(R.string.common_delete, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- if (checkBox.isChecked()) {
- Util.setSyncDefault(SubsonicActivity.this, "delete");
- }
- deleteOffline();
- }
- });
+ syncOffline(scrobbleCount, starsCount);
+ }).setNeutralButton(R.string.common_cancel, (dialogInterface, i) -> dialogInterface.dismiss()).setNegativeButton(R.string.common_delete, (dialogInterface, i) -> {
+ if (checkBox.isChecked()) {
+ Util.setSyncDefault(SubsonicActivity.this, "delete");
+ }
+ deleteOffline();
+ });
builder.create().show();
}
@@ -1214,7 +1184,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
SharedPreferences.Editor offline = Util.getOfflineSync(this).edit();
offline.putInt(Constants.OFFLINE_SCROBBLE_COUNT, 0);
offline.putInt(Constants.OFFLINE_STAR_COUNT, 0);
- offline.commit();
+ offline.apply();
}
public int getDrawerItemId(String fragmentType) {
@@ -1223,8 +1193,6 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
switch(fragmentType) {
- case "Home":
- return R.id.drawer_home;
case "Artist":
return R.id.drawer_library;
case "Playlist":
@@ -1265,7 +1233,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
}
@Override
- public void uncaughtException(Thread thread, Throwable throwable) {
+ public void uncaughtException(@NonNull Thread thread, @NonNull Throwable throwable) {
File file = null;
PrintWriter printWriter = null;
try {
@@ -1273,7 +1241,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
file = new File(Environment.getExternalStorageDirectory(), "dsub-stacktrace.txt");
printWriter = new PrintWriter(file);
- printWriter.println("Android API level: " + Build.VERSION.SDK);
+ printWriter.println("Android API level: " + Build.VERSION.SDK_INT);
printWriter.println("Subsonic version name: " + packageInfo.versionName);
printWriter.println("Subsonic version code: " + packageInfo.versionCode);
printWriter.println();