AndroidX lib refactor

This commit is contained in:
h4h13 2018-08-30 14:59:30 +05:30
parent b3eb12aebd
commit 08f0b5e76e
581 changed files with 5470 additions and 6070 deletions

View file

@ -1,8 +1,8 @@
package code.name.monkey.retromusic;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.multidex.MultiDexApplication;
import androidx.annotation.NonNull;
import androidx.multidex.MultiDexApplication;
import com.anjlab.android.iab.v3.BillingProcessor;
import com.anjlab.android.iab.v3.TransactionDetails;

View file

@ -7,7 +7,7 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.graphics.drawable.LayerDrawable;
import android.os.Build;
import android.support.annotation.RequiresApi;
import androidx.annotation.RequiresApi;
import android.util.TypedValue;
import code.name.monkey.appthemehelper.ThemeStore;

View file

@ -7,7 +7,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import androidx.annotation.Nullable;
import android.text.TextUtils;
import android.view.View;
import android.widget.RemoteViews;

View file

@ -6,8 +6,8 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.support.v7.graphics.Palette;
import androidx.annotation.Nullable;
import androidx.palette.graphics.Palette;
import android.text.TextUtils;
import android.view.View;
import android.widget.RemoteViews;

View file

@ -6,8 +6,8 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.support.v7.graphics.Palette;
import androidx.annotation.Nullable;
import androidx.palette.graphics.Palette;
import android.text.TextUtils;
import android.view.View;
import android.widget.RemoteViews;

View file

@ -6,8 +6,8 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.support.v7.graphics.Palette;
import androidx.annotation.Nullable;
import androidx.palette.graphics.Palette;
import android.text.TextUtils;
import android.view.View;
import android.widget.RemoteViews;

View file

@ -1,11 +1,11 @@
package code.name.monkey.retromusic.dialogs;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View file

@ -6,9 +6,6 @@ import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.DialogFragment;
import android.view.View;
import com.afollestad.materialdialogs.MaterialDialog;
@ -19,6 +16,9 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.DialogFragment;
import code.name.monkey.retromusic.R;
/**
@ -26,13 +26,15 @@ import code.name.monkey.retromusic.R;
*/
public class BlacklistFolderChooserDialog extends DialogFragment implements MaterialDialog.ListCallback {
String initialPath = Environment.getExternalStorageDirectory().getAbsolutePath();
private File parentFolder;
private File[] parentContents;
private boolean canGoUp = false;
private FolderCallback callback;
String initialPath = Environment.getExternalStorageDirectory().getAbsolutePath();
public static BlacklistFolderChooserDialog create() {
return new BlacklistFolderChooserDialog();
}
private String[] getContentsArray() {
if (parentContents == null) {
@ -66,10 +68,6 @@ public class BlacklistFolderChooserDialog extends DialogFragment implements Mate
return null;
}
public static BlacklistFolderChooserDialog create() {
return new BlacklistFolderChooserDialog();
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

View file

@ -1 +1 @@
package code.name.monkey.retromusic.dialogs; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import com.afollestad.materialdialogs.internal.ThemeSingleton; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Objects; import butterknife.BindView; import butterknife.ButterKnife; import code.name.monkey.appthemehelper.util.ATHUtil; import code.name.monkey.appthemehelper.util.ColorUtil; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.util.PreferenceUtil; import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment; public class ChangelogDialog extends RoundedBottomSheetDialogFragment { @BindView(R.id.web_view) WebView webView; public static ChangelogDialog create() { return new ChangelogDialog(); } public static void setChangelogRead(@NonNull Context context) { try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); int currentVersion = pInfo.versionCode; PreferenceUtil.getInstance(context).setLastChangeLogVersion(currentVersion); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } private static String colorToHex(int color) { return Integer.toHexString(color).substring(2); } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.dialog_changelog, container, false); ButterKnife.bind(this, layout); return layout; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); try { // Load from phonograph-changelog.html in the assets folder StringBuilder buf = new StringBuilder(); InputStream json = Objects.requireNonNull(getActivity()).getAssets().open ("retro-changelog.html"); BufferedReader in = new BufferedReader(new InputStreamReader(json, "UTF-8")); String str; while ((str = in.readLine()) != null) buf.append(str); in.close(); // Inject color values for WebView body background and links final String backgroundColor = colorToHex(ATHUtil.resolveColor(getActivity(), R.attr.md_background_color, Color.parseColor(ThemeSingleton.get().darkTheme ? "#424242" : "#ffffff"))); final String contentColor = ThemeSingleton.get().darkTheme ? "#ffffff" : "#000000"; webView.loadData(buf.toString() .replace("{style-placeholder}", String.format("body { background-color: %s; color: %s; }", backgroundColor, contentColor)) .replace("{link-color}", colorToHex(ThemeSingleton.get().positiveColor.getDefaultColor())) .replace("{link-color-active}", colorToHex(ColorUtil.lightenColor(ThemeSingleton.get().positiveColor.getDefaultColor()))) , "text/html", "UTF-8"); } catch (Throwable e) { webView.loadData("<h1>Unable to load</h1><p>" + e.getLocalizedMessage() + "</p>", "text/html", "UTF-8"); } setChangelogRead(getActivity()); } }
package code.name.monkey.retromusic.dialogs; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import com.afollestad.materialdialogs.internal.ThemeSingleton; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Objects; import butterknife.BindView; import butterknife.ButterKnife; import code.name.monkey.appthemehelper.util.ATHUtil; import code.name.monkey.appthemehelper.util.ColorUtil; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.util.PreferenceUtil; import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment; public class ChangelogDialog extends RoundedBottomSheetDialogFragment { @BindView(R.id.web_view) WebView webView; public static ChangelogDialog create() { return new ChangelogDialog(); } private static void setChangelogRead(@NonNull Context context) { try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); int currentVersion = pInfo.versionCode; PreferenceUtil.getInstance(context).setLastChangeLogVersion(currentVersion); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } private static String colorToHex(int color) { return Integer.toHexString(color).substring(2); } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.dialog_changelog, container, false); ButterKnife.bind(this, layout); return layout; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); try { // Load from phonograph-changelog.html in the assets folder StringBuilder buf = new StringBuilder(); InputStream json = Objects.requireNonNull(getActivity()).getAssets().open ("retro-changelog.html"); BufferedReader in = new BufferedReader(new InputStreamReader(json, "UTF-8")); String str; while ((str = in.readLine()) != null) buf.append(str); in.close(); // Inject color values for WebView body background and links final String backgroundColor = colorToHex(ATHUtil.resolveColor(getActivity(), R.attr.md_background_color, Color.parseColor(ThemeSingleton.get().darkTheme ? "#424242" : "#ffffff"))); final String contentColor = ThemeSingleton.get().darkTheme ? "#ffffff" : "#000000"; webView.loadData(buf.toString() .replace("{style-placeholder}", String.format("body { background-color: %s; color: %s; }", backgroundColor, contentColor)) .replace("{link-color}", colorToHex(ThemeSingleton.get().positiveColor.getDefaultColor())) .replace("{link-color-active}", colorToHex(ColorUtil.lightenColor(ThemeSingleton.get().positiveColor.getDefaultColor()))) , "text/html", "UTF-8"); } catch (Throwable e) { webView.loadData("<h1>Unable to load</h1><p>" + e.getLocalizedMessage() + "</p>", "text/html", "UTF-8"); } setChangelogRead(getActivity()); } }

View file

@ -2,8 +2,8 @@ package code.name.monkey.retromusic.dialogs;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import android.text.Html;
import com.afollestad.materialdialogs.DialogAction;

View file

@ -1,24 +1,25 @@
package code.name.monkey.retromusic.dialogs;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.v7.widget.CardView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import java.util.ArrayList;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.MaterialValueHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.model.Song;
import code.name.monkey.retromusic.util.PlaylistsUtil;
@ -32,14 +33,17 @@ public class CreatePlaylistDialog extends RoundedBottomSheetDialogFragment {
@BindView(R.id.option_1)
TextInputEditText playlistName;
@BindView(R.id.action_new_playlist)
TextInputLayout textInputLayout;
@BindView(R.id.action_cancel)
TextView actionCancel;
MaterialButton actionCancel;
@BindView(R.id.action_create)
TextView actionCreate;
MaterialButton actionCreate;
@BindView(R.id.action_create_container)
CardView actionCreateContainer;
@BindView(R.id.title)
TextView title;
@NonNull
public static CreatePlaylistDialog create() {
@ -76,16 +80,17 @@ public class CreatePlaylistDialog extends RoundedBottomSheetDialogFragment {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
int accentColor = ThemeStore.accentColor(Objects.requireNonNull(getContext()));
actionCreateContainer.setCardBackgroundColor(ThemeStore.accentColor(getContext()));
actionCreate.setBackgroundTintList(ColorStateList.valueOf(accentColor));
actionCancel.setStrokeColor(ColorStateList.valueOf(accentColor));
actionCancel.setTextColor(accentColor);
playlistName.setHintTextColor(ColorStateList.valueOf(accentColor));
int primaryTextColor = MaterialValueHelper.getPrimaryTextColor(getContext(), ColorUtil
.isColorLight(accentColor));
int secondaryTextColor = MaterialValueHelper.getSecondaryTextColor(getContext(), ColorUtil
.isColorLight(accentColor));
actionCreate.setTextColor(primaryTextColor);
actionCancel.setTextColor(secondaryTextColor);
textInputLayout.setBoxStrokeColor(accentColor);
textInputLayout.setDefaultHintTextColor(ColorStateList.valueOf(accentColor));
playlistName.setHintTextColor(accentColor);
playlistName.setTextColor(ThemeStore.textColorPrimary(getContext()));
title.setTextColor(ThemeStore.textColorPrimary(getContext()));
}

View file

@ -1,19 +1,24 @@
package code.name.monkey.retromusic.dialogs;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import com.google.android.material.button.MaterialButton;
import java.util.ArrayList;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.model.Playlist;
import code.name.monkey.retromusic.util.PlaylistsUtil;
@ -23,11 +28,13 @@ import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment;
public class DeletePlaylistDialog extends RoundedBottomSheetDialogFragment {
@BindView(R.id.action_delete)
TextView delete;
MaterialButton actionDelete;
@BindView(R.id.title)
TextView title;
@BindView(R.id.action_cancel)
TextView cancel;
MaterialButton actionCancel;
@NonNull
public static DeletePlaylistDialog create(Playlist playlist) {
@ -47,12 +54,14 @@ public class DeletePlaylistDialog extends RoundedBottomSheetDialogFragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.dialog_delete_playlist, container, false);
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.dialog_delete, container, false);
ButterKnife.bind(this, layout);
return layout;
}
@SuppressWarnings("ConstantConditions")
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@ -68,8 +77,16 @@ public class DeletePlaylistDialog extends RoundedBottomSheetDialogFragment {
title = R.string.delete_playlist_title;
content = Html.fromHtml(getString(R.string.delete_playlist_x, playlists.get(0).name));
}
this.title.setText(title);
this.delete.setText(content);
this.title.setText(content);
this.actionDelete.setText(title);
this.title.setTextColor(ThemeStore.textColorPrimary(getContext()));
int accentColor = ThemeStore.accentColor(Objects.requireNonNull(getContext()));
actionDelete.setBackgroundTintList(ColorStateList.valueOf(accentColor));
actionCancel.setStrokeColor(ColorStateList.valueOf(accentColor));
actionCancel.setTextColor(accentColor);
}
@OnClick({R.id.action_cancel, R.id.action_delete})

View file

@ -1,14 +1,20 @@
package code.name.monkey.retromusic.dialogs;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.android.material.button.MaterialButton;
import java.util.ArrayList;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
@ -18,17 +24,15 @@ import code.name.monkey.retromusic.model.Song;
import code.name.monkey.retromusic.util.MusicUtil;
import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment;
import java.util.ArrayList;
public class DeleteSongsDialog extends RoundedBottomSheetDialogFragment {
@BindView(R.id.action_delete)
MaterialButton actionDelete;
@BindView(R.id.title)
TextView title;
@BindView(R.id.action_delete)
TextView delete;
@BindView(R.id.action_cancel)
TextView cancel;
MaterialButton actionCancel;
@NonNull
public static DeleteSongsDialog create(Song song) {
@ -70,9 +74,10 @@ public class DeleteSongsDialog extends RoundedBottomSheetDialogFragment {
super.onViewCreated(view, savedInstanceState);
title.setTextColor(ThemeStore.textColorPrimary(getContext()));
delete.setTextColor(ThemeStore.textColorPrimary(getContext()));
cancel.setTextColor(ThemeStore.textColorPrimary(getContext()));
int accentColor = ThemeStore.accentColor(Objects.requireNonNull(getContext()));
actionDelete.setBackgroundTintList(ColorStateList.valueOf(accentColor));
actionCancel.setStrokeColor(ColorStateList.valueOf(accentColor));
actionCancel.setTextColor(accentColor);
//noinspection unchecked,ConstantConditions
final ArrayList<Song> songs = getArguments().getParcelableArrayList("songs");
@ -91,7 +96,7 @@ public class DeleteSongsDialog extends RoundedBottomSheetDialogFragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.dialog_delete_songs, container, false);
View layout = inflater.inflate(R.layout.dialog_delete, container, false);
ButterKnife.bind(this, layout);
return layout;
}

View file

@ -2,10 +2,10 @@ package code.name.monkey.retromusic.dialogs;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.AppCompatTextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.appcompat.widget.AppCompatTextView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -40,10 +40,12 @@ import static code.name.monkey.retromusic.Constants.USER_PROFILE;
public class HomeOptionDialog extends RoundedBottomSheetDialogFragment {
private static final String TAG = "HomeOptionDialog";
static ButterKnife.Setter<TextView, Integer> textColor = (view, value, index) -> view.setTextColor(value.intValue());
private static ButterKnife.Setter<TextView, Integer> textColor = (view, value, index) -> view.setTextColor(value.intValue());
Unbinder mUnbinder;
@BindView(R.id.user_image_bottom)
CircularImageView userImageBottom;
@BindView(R.id.title_welcome)
AppCompatTextView titleWelcome;
@BindViews({R.id.tv_about, R.id.title_welcome, R.id.text, R.id.tv_buy_pro, R.id.tv_rate_app,
@ -68,8 +70,7 @@ public class HomeOptionDialog extends RoundedBottomSheetDialogFragment {
super.onViewCreated(view, savedInstanceState);
loadImageFromStorage();
//noinspection ConstantConditions
titleWelcome.setText(String.format("%s, %s!", getTimeOfTheDay(),
PreferenceUtil.getInstance(getContext()).getUserName()));
titleWelcome.setText(String.format("%s, %s!", getTimeOfTheDay(), PreferenceUtil.getInstance(getContext()).getUserName()));
}
private String getTimeOfTheDay() {
@ -109,7 +110,6 @@ public class HomeOptionDialog extends RoundedBottomSheetDialogFragment {
case R.id.action_rate:
NavigationUtil.goToPlayStore(getActivity());
break;
case R.id.action_settings:
NavigationUtil.goToSettings(getActivity());
break;

View file

@ -0,0 +1,64 @@
package code.name.monkey.retromusic.dialogs;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.navigation.NavigationView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.ui.activities.MainActivity;
public class MainOptionsBottomSheetDialogFragment extends BottomSheetDialogFragment implements NavigationView.OnNavigationItemSelectedListener {
@BindView(R.id.navigation_view)
NavigationView navigationView;
public static MainOptionsBottomSheetDialogFragment newInstance(int home) {
Bundle args = new Bundle();
args.putInt("selected", home);
MainOptionsBottomSheetDialogFragment fragment = new MainOptionsBottomSheetDialogFragment();
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_main_options, container, false);
ButterKnife.bind(this, layout);
return layout;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
navigationView.setNavigationItemSelectedListener(this);
switch (getArguments().getInt("selected")) {
default:
case MainActivity.HOME:
navigationView.setCheckedItem(R.id.action_home);
break;
}
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_home:
Toast.makeText(getContext(), menuItem.getTitle(), Toast.LENGTH_SHORT).show();
return true;
default:
return false;
}
}
}

View file

@ -1,9 +1,9 @@
package code.name.monkey.retromusic.dialogs;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialogFragment;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
@ -24,8 +24,10 @@ import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment;
public class RemoveFromPlaylistDialog extends RoundedBottomSheetDialogFragment {
@BindView(R.id.action_remove)
TextView remove;
@BindView(R.id.title)
TextView title;
@BindView(R.id.action_cancel)
TextView cancel;

View file

@ -1,79 +1,101 @@
package code.name.monkey.retromusic.dialogs;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.util.PlaylistsUtil;
import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment;
import java.util.Objects;
/**
* @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad)
*/
public class RenamePlaylistDialog extends RoundedBottomSheetDialogFragment {
@BindView(R.id.option_1)
EditText playlistName;
@BindView(R.id.action_cancel)
Button cancel;
@BindView(R.id.action_rename)
Button rename;
@BindView(R.id.title)
TextView title;
@NonNull
public static RenamePlaylistDialog create(long playlistId) {
RenamePlaylistDialog dialog = new RenamePlaylistDialog();
Bundle args = new Bundle();
args.putLong("playlist_id", playlistId);
dialog.setArguments(args);
return dialog;
}
@BindView(R.id.option_1)
TextInputEditText playlistName;
@OnClick({R.id.action_cancel, R.id.action_rename})
void actions(View view) {
switch (view.getId()) {
case R.id.action_cancel:
dismiss();
break;
case R.id.action_rename:
if (!playlistName.toString().trim().equals("")) {
long playlistId = getArguments().getLong("playlist_id");
PlaylistsUtil.renamePlaylist(getActivity(), playlistId,
playlistName.getText().toString());
}
break;
@BindView(R.id.action_new_playlist)
TextInputLayout textInputLayout;
@BindView(R.id.action_cancel)
MaterialButton actionCancel;
@BindView(R.id.action_rename)
MaterialButton rename;
@NonNull
public static RenamePlaylistDialog create(long playlistId) {
RenamePlaylistDialog dialog = new RenamePlaylistDialog();
Bundle args = new Bundle();
args.putLong("playlist_id", playlistId);
dialog.setArguments(args);
return dialog;
}
dismiss();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.dialog_playlist_rename, container, false);
ButterKnife.bind(this, layout);
return layout;
}
@OnClick({R.id.action_cancel, R.id.action_rename})
void actions(View view) {
switch (view.getId()) {
case R.id.action_cancel:
dismiss();
break;
case R.id.action_rename:
if (!playlistName.toString().trim().equals("")) {
long playlistId = getArguments().getLong("playlist_id");
PlaylistsUtil.renamePlaylist(getActivity(), playlistId,
playlistName.getText().toString());
}
break;
}
dismiss();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
int accentColor = ThemeStore.accentColor(Objects.requireNonNull(getContext()));
TintHelper.setTintAuto(playlistName, accentColor, true);
TintHelper.setTintAuto(rename, accentColor, true);
cancel.setTextColor(accentColor);
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.dialog_playlist_rename, container, false);
ButterKnife.bind(this, layout);
return layout;
}
long playlistId = getArguments().getLong("playlist_id");
playlistName.setText(PlaylistsUtil.getNameForPlaylist(getActivity(), playlistId));
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
int accentColor = ThemeStore.accentColor(Objects.requireNonNull(getContext()));
rename.setBackgroundTintList(ColorStateList.valueOf(accentColor));
actionCancel.setStrokeColor(ColorStateList.valueOf(accentColor));
actionCancel.setTextColor(accentColor);
playlistName.setHintTextColor(ColorStateList.valueOf(accentColor));
textInputLayout.setBoxStrokeColor(accentColor);
textInputLayout.setDefaultHintTextColor(ColorStateList.valueOf(accentColor));
playlistName.setHintTextColor(accentColor);
playlistName.setTextColor(ThemeStore.textColorPrimary(getContext()));
title.setTextColor(ThemeStore.textColorPrimary(getContext()));
long playlistId = 0;
if (getArguments() != null) {
playlistId = getArguments().getLong("playlist_id");
}
playlistName.setText(PlaylistsUtil.getNameForPlaylist(getActivity(), playlistId));
}
}

File diff suppressed because one or more lines are too long

View file

@ -5,14 +5,13 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff;
import android.graphics.drawable.ClipDrawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.SystemClock;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -20,8 +19,14 @@ import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Locale;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputLayout;
import java.util.Locale;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
@ -37,15 +42,18 @@ import static code.name.monkey.retromusic.Constants.ACTION_QUIT;
public class SleepTimerDialog extends RoundedBottomSheetDialogFragment {
@BindView(R.id.seek_arc)
SeekBar seekArc;
@BindView(R.id.timer_display)
TextView timerDisplay;
@BindView(R.id.action_set)
TextView setButton;
@BindView(R.id.action_cancel)
TextView cancelButton;
@BindView(R.id.action_cancel_container)
View cancelButtonContainer;
@BindView(R.id.action_set)
MaterialButton setButton;
@BindView(R.id.action_cancel)
MaterialButton cancelButton;
@BindView(R.id.title)
TextView title;
private int seekArcProgress;
private TimerUpdater timerUpdater;
@ -81,6 +89,14 @@ public class SleepTimerDialog extends RoundedBottomSheetDialogFragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
int accentColor = ThemeStore.accentColor(Objects.requireNonNull(getContext()));
setButton.setBackgroundTintList(ColorStateList.valueOf(accentColor));
cancelButton.setStrokeColor(ColorStateList.valueOf(accentColor));
cancelButton.setTextColor(accentColor);
title.setTextColor(ThemeStore.textColorPrimary(getContext()));
timerDisplay.setTextColor(ThemeStore.textColorSecondary(getContext()));
timerUpdater = new TimerUpdater();
seekArcProgress = PreferenceUtil.getInstance(getActivity()).getLastSleepTimerValue();
@ -174,7 +190,7 @@ public class SleepTimerDialog extends RoundedBottomSheetDialogFragment {
@Override
public void onFinish() {
cancelButton.setText(null);
cancelButtonContainer.setVisibility(View.GONE);
cancelButton.setVisibility(View.GONE);
//materialDialog.setActionButton(DialogAction.NEUTRAL, null);
}
}

View file

@ -2,9 +2,6 @@ package code.name.monkey.retromusic.dialogs;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialogFragment;
import android.text.Html;
import android.text.Spanned;
import android.util.Log;
@ -25,7 +22,8 @@ import java.io.File;
import java.io.IOException;
import java.util.List;
import butterknife.BindView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindViews;
import butterknife.ButterKnife;
import code.name.monkey.appthemehelper.ThemeStore;
@ -40,6 +38,15 @@ import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment;
public class SongDetailDialog extends RoundedBottomSheetDialogFragment {
public static final String TAG = SongDetailDialog.class.getSimpleName();
@BindViews({R.id.title,
R.id.file_name,
R.id.file_path,
R.id.file_size,
R.id.file_format,
R.id.track_length,
R.id.bitrate,
R.id.sampling_rate})
List<TextView> textViews;
@NonNull
public static SongDetailDialog create(Song song) {
@ -67,16 +74,6 @@ public class SongDetailDialog extends RoundedBottomSheetDialogFragment {
}
}
@BindViews({R.id.title,
R.id.file_name,
R.id.file_path,
R.id.file_size,
R.id.file_format,
R.id.track_length,
R.id.bitrate,
R.id.sampling_rate})
List<TextView> textViews;
@SuppressWarnings("ConstantConditions")
@Nullable
@Override

View file

@ -3,9 +3,9 @@ package code.name.monkey.retromusic.dialogs;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialogFragment;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.glide;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.bumptech.glide.BitmapRequestBuilder;
import com.bumptech.glide.DrawableRequestBuilder;

View file

@ -10,8 +10,8 @@ import android.renderscript.Element;
import android.renderscript.RSRuntimeException;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
import android.support.annotation.FloatRange;
import android.support.annotation.NonNull;
import androidx.annotation.FloatRange;
import androidx.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.glide;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.glide.audiocover.AudioFileCover;
import code.name.monkey.retromusic.glide.palette.BitmapPaletteTranscoder;

View file

@ -1,7 +1,7 @@
package code.name.monkey.retromusic.glide.palette;
import android.graphics.Bitmap;
import android.support.v7.graphics.Palette;
import androidx.palette.graphics.Palette;
public class BitmapPaletteWrapper {
private final Bitmap mBitmap;

View file

@ -1,7 +1,7 @@
package code.name.monkey.retromusic.helper;
import android.content.Context;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.io.BufferedWriter;
import java.io.File;

View file

@ -15,8 +15,8 @@ import android.os.Environment;
import android.os.IBinder;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.util.Log;
import android.widget.Toast;

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.helper;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
public class MusicProgressViewUpdateHelper extends Handler {

View file

@ -4,7 +4,7 @@ import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.helper;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.model.Song;

View file

@ -1,8 +1,8 @@
package code.name.monkey.retromusic.helper.menu;
import android.app.Activity;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.view.MenuItem;
import java.util.ArrayList;

View file

@ -2,8 +2,8 @@ package code.name.monkey.retromusic.helper.menu;
import android.app.Activity;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.Toast;

View file

@ -1,9 +1,9 @@
package code.name.monkey.retromusic.helper.menu;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AppCompatActivity;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import androidx.appcompat.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;

View file

@ -1,7 +1,7 @@
package code.name.monkey.retromusic.helper.menu;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import code.name.monkey.retromusic.model.Song;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.interfaces;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.afollestad.materialcab.MaterialCab;

View file

@ -1,7 +1,5 @@
package code.name.monkey.retromusic.interfaces;
import android.support.v4.app.Fragment;
/**
* Created by hemanths on 14/08/17.
*/

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.interfaces;
import android.support.annotation.ColorInt;
import androidx.annotation.ColorInt;
/**
* @author Aidan Follestad (afollestad)

View file

@ -2,8 +2,8 @@ package code.name.monkey.retromusic.loaders;
import android.content.Context;
import android.provider.MediaStore.Audio.AudioColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.model.Album;
import code.name.monkey.retromusic.model.Song;
import code.name.monkey.retromusic.util.PreferenceUtil;

View file

@ -2,8 +2,8 @@ package code.name.monkey.retromusic.loaders;
import android.content.Context;
import android.provider.MediaStore.Audio.AudioColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;

View file

@ -3,7 +3,7 @@ package code.name.monkey.retromusic.loaders;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.model.Song;

View file

@ -5,8 +5,8 @@ import android.database.Cursor;
import android.net.Uri;
import android.provider.BaseColumns;
import android.provider.MediaStore.Audio.Genres;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;

View file

@ -4,7 +4,7 @@ import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio.AudioColumns;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.model.Song;

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.loaders;
import android.content.Context;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -6,8 +6,8 @@ import android.net.Uri;
import android.provider.BaseColumns;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio.PlaylistsColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.model.Playlist;

View file

@ -1,7 +1,7 @@
package code.name.monkey.retromusic.loaders;
import android.content.Context;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import android.text.TextUtils;
import java.util.ArrayList;

View file

@ -5,8 +5,8 @@ import android.database.Cursor;
import android.provider.BaseColumns;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio.AudioColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;

View file

@ -17,8 +17,8 @@ package code.name.monkey.retromusic.loaders;
import android.database.AbstractCursor;
import android.database.Cursor;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collection;

View file

@ -17,8 +17,8 @@ package code.name.monkey.retromusic.loaders;
import android.database.AbstractCursor;
import android.database.Cursor;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collection;

View file

@ -3,8 +3,8 @@ package code.name.monkey.retromusic.loaders;
import android.content.Context;
import android.database.Cursor;
import android.provider.BaseColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.model.Album;
import code.name.monkey.retromusic.model.Artist;
import code.name.monkey.retromusic.model.Song;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.misc;
import android.support.design.widget.AppBarLayout;
import com.google.android.material.appbar.AppBarLayout;
/**
* @author Hemanth S (h4h13).

View file

@ -18,11 +18,13 @@ package code.name.monkey.retromusic.misc;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
@ -30,7 +32,7 @@ import android.view.ViewGroup;
import java.util.ArrayList;
/**
* Implementation of {@link android.support.v4.view.PagerAdapter} that
* Implementation of {@link PagerAdapter} that
* uses a {@link Fragment} to manage each page. This class also handles
* saving and restoring of fragment's state.
* <p/>
@ -65,7 +67,7 @@ import java.util.ArrayList;
* {@sample development/samples/Support13Demos/res/layout/fragment_pager_list.xml
* complete}
*/
public abstract class CustomFragmentStatePagerAdapter extends android.support.v4.view.PagerAdapter {
public abstract class CustomFragmentStatePagerAdapter extends PagerAdapter {
public static final String TAG = CustomFragmentStatePagerAdapter.class.getSimpleName();
private static final boolean DEBUG = false;

View file

@ -1,62 +0,0 @@
package code.name.monkey.retromusic.misc;
import android.app.Activity;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.MediaRouteActionProvider;
import android.support.v7.app.MediaRouteButton;
import android.support.v7.media.MediaRouteSelector;
import android.util.Log;
import android.view.ViewGroup;
import code.name.monkey.retromusic.RetroApplication;
import code.name.monkey.retromusic.views.CustomMediaRouteButton;
public class CustomMediaRouteActionProvider extends MediaRouteActionProvider {
private static final String TAG = "MediaRteActProvider";
private Activity activity;
private MediaRouteSelector selector = MediaRouteSelector.EMPTY;
private CustomMediaRouteButton customMediaRouteButton;
public CustomMediaRouteActionProvider(Context context) {
super(context);
}
public void setActivity(@NonNull Activity activity) {
this.activity = activity;
if (customMediaRouteButton != null) {
customMediaRouteButton.setActivity(activity);
}
}
@Nullable
@Override
public MediaRouteButton getMediaRouteButton() {
return customMediaRouteButton;
}
/**
* Called when the media route button is being created.
*/
@SuppressWarnings("deprecation")
@Override
public CustomMediaRouteButton onCreateMediaRouteButton() {
if (customMediaRouteButton != null) {
Log.e(TAG, "onCreateMediaRouteButton: This ActionProvider is already associated "
+ "with a menu item. Don't reuse MediaRouteActionProvider instances! "
+ "Abandoning the old button...");
}
customMediaRouteButton = new CustomMediaRouteButton(getContext());
customMediaRouteButton.setActivity(activity);
customMediaRouteButton.setAlpha(RetroApplication.isProVersion() ? 1.0f : 0.5f);
customMediaRouteButton.setRouteSelector(selector);
customMediaRouteButton.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.FILL_PARENT));
return customMediaRouteButton;
}
}

View file

@ -3,8 +3,8 @@ package code.name.monkey.retromusic.misc;
import android.app.Dialog;
import android.content.Context;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.lang.ref.WeakReference;

View file

@ -5,13 +5,14 @@ import android.animation.ObjectAnimator;
import android.app.Activity;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.animation.Interpolator;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import butterknife.BindInt;
import code.name.monkey.appthemehelper.util.ATHUtil;
import code.name.monkey.retromusic.R;
@ -65,7 +66,7 @@ public class NavigationIconClickListener implements View.OnClickListener {
throw new IllegalArgumentException("updateIcon() must be called on an ImageView");
}
updateIcon((ImageView) view);
final int translateY = (int) RetroUtil.convertDpToPixel(RetroUtil.isLandscape(view.getResources()) ? 3 * 48 : 5 * 48, view.getContext());
final int translateY = (int) RetroUtil.convertDpToPixel(getHeight(view.getContext()), view.getContext());
ObjectAnimator animator = ObjectAnimator.ofFloat(sheet, "translationY", backdropShown ? translateY : 0);
animator.setDuration(500);
@ -76,6 +77,20 @@ public class NavigationIconClickListener implements View.OnClickListener {
animator.start();
}
private int getHeight(Context context) {
Resources resources = context.getResources();
if (RetroUtil.isLandscape(resources)) {
return 3 * 48;
} else if (RetroUtil.isTablet(resources)) {
if (RetroUtil.isLandscape(resources)) {
return 48;
} else {
return 2 * 48;
}
} else
return 5 * 48;
}
private void updateIcon(ImageView view) {
if (openIcon != null && closeIcon != null) {
view.setImageTintList(ColorStateList.valueOf(ATHUtil.resolveColor(context, R.attr.iconColor)));

View file

@ -2,10 +2,10 @@ package code.name.monkey.retromusic.misc;
import android.content.Context;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.view.ViewCompat;
import androidx.annotation.NonNull;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import androidx.core.view.ViewCompat;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

View file

@ -1 +1 @@
package code.name.monkey.retromusic.misc; import android.content.Context; import android.os.AsyncTask; import android.support.annotation.Nullable; import java.lang.ref.WeakReference; public abstract class WeakContextAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> { private WeakReference<Context> contextWeakReference; public WeakContextAsyncTask(Context context) { contextWeakReference = new WeakReference<>(context); } @Nullable protected Context getContext() { return contextWeakReference.get(); } }
package code.name.monkey.retromusic.misc; import android.content.Context; import android.os.AsyncTask; import androidx.annotation.Nullable; import java.lang.ref.WeakReference; public abstract class WeakContextAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> { private WeakReference<Context> contextWeakReference; public WeakContextAsyncTask(Context context) { contextWeakReference = new WeakReference<>(context); } @Nullable protected Context getContext() { return contextWeakReference.get(); } }

View file

@ -2,7 +2,7 @@
package code.name.monkey.retromusic.misc;
import android.content.Context;
import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
/**
* <a href="http://code.google.com/p/android/issues/detail?id=14944">Issue

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.model;
import android.content.Context;
import android.os.Parcel;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.model;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -2,7 +2,7 @@ package code.name.monkey.retromusic.model;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.model;
import android.support.annotation.StringRes;
import androidx.annotation.StringRes;
import java.util.ArrayList;

View file

@ -2,8 +2,8 @@ package code.name.monkey.retromusic.model.smartplaylist;
import android.content.Context;
import android.os.Parcel;
import android.support.annotation.DrawableRes;
import android.support.annotation.Nullable;
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.model.AbsCustomPlaylist;

View file

@ -3,7 +3,7 @@ package code.name.monkey.retromusic.model.smartplaylist;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -3,7 +3,7 @@ package code.name.monkey.retromusic.model.smartplaylist;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.R;

View file

@ -3,7 +3,7 @@ package code.name.monkey.retromusic.model.smartplaylist;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.R;

View file

@ -3,7 +3,7 @@ package code.name.monkey.retromusic.model.smartplaylist;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.R;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.Injection;
import code.name.monkey.retromusic.providers.interfaces.Repository;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.model.Album;
import code.name.monkey.retromusic.mvp.Presenter;
import code.name.monkey.retromusic.mvp.contract.AlbumDetailsContract;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,7 +1,7 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.os.Bundle;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.model.Artist;
import code.name.monkey.retromusic.mvp.Presenter;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.RetroApplication;
import code.name.monkey.retromusic.mvp.Presenter;
@ -27,10 +27,6 @@ public class HomePresenter extends Presenter implements HomeContract.HomePresent
loadSuggestions();
if (PreferenceUtil.getInstance(RetroApplication.getInstance()).isGenreShown()) {
loadGenres();
}
}
@Override

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.model.Playlist;
import code.name.monkey.retromusic.mvp.Presenter;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.mvp.presenter;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;

View file

@ -0,0 +1,25 @@
package code.name.monkey.retromusic.preferences;
import android.content.Context;
import android.util.AttributeSet;
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference;
public class AlbumCoverStylePreference extends ATEDialogPreference {
public AlbumCoverStylePreference(Context context) {
super(context);
}
public AlbumCoverStylePreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AlbumCoverStylePreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public AlbumCoverStylePreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
}

View file

@ -0,0 +1,137 @@
package code.name.monkey.retromusic.preferences;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.bumptech.glide.Glide;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.ui.fragments.AlbumCoverStyle;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.util.ViewUtil;
public class AlbumCoverStylePreferenceDialog extends DialogFragment implements
ViewPager.OnPageChangeListener, MaterialDialog.SingleButtonCallback {
public static final String TAG = AlbumCoverStylePreferenceDialog.class.getSimpleName();
private DialogAction whichButtonClicked;
private int viewPagerPosition;
public static AlbumCoverStylePreferenceDialog newInstance() {
return new AlbumCoverStylePreferenceDialog();
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@SuppressLint("InflateParams") View view = LayoutInflater.from(getActivity()).inflate(R.layout.preference_dialog_now_playing_screen, null);
ViewPager viewPager = view.findViewById(R.id.now_playing_screen_view_pager);
viewPager.setAdapter(new AlbumCoverStyleAdapter(getActivity()));
viewPager.addOnPageChangeListener(this);
viewPager.setPageMargin((int) ViewUtil.convertDpToPixel(32, getResources()));
viewPager.setCurrentItem(PreferenceUtil.getInstance(getActivity()).getAlbumCoverStyle().ordinal());
return new MaterialDialog.Builder(getActivity())
.title(R.string.pref_title_album_cover_style)
.positiveText(android.R.string.ok)
.negativeText(android.R.string.cancel)
.onAny(this)
.customView(view, false)
.build();
}
@Override
public void onClick(@NonNull MaterialDialog dialog,
@NonNull DialogAction which) {
whichButtonClicked = which;
}
@SuppressWarnings("ConstantConditions")
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (whichButtonClicked == DialogAction.POSITIVE) {
AlbumCoverStyle nowPlayingScreen = AlbumCoverStyle.values()[viewPagerPosition];
PreferenceUtil.getInstance(getActivity()).setAlbumCoverStyle(nowPlayingScreen);
}
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
this.viewPagerPosition = position;
}
@Override
public void onPageScrollStateChanged(int state) {
}
private static class AlbumCoverStyleAdapter extends PagerAdapter {
private Context context;
AlbumCoverStyleAdapter(Context context) {
this.context = context;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup collection, int position) {
AlbumCoverStyle albumCoverStyle = AlbumCoverStyle.values()[position];
LayoutInflater inflater = LayoutInflater.from(context);
ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.preference_now_playing_screen_item, collection, false);
collection.addView(layout);
ImageView image = layout.findViewById(R.id.image);
TextView title = layout.findViewById(R.id.title);
Glide.with(context).load(albumCoverStyle.drawableResId).into(image);
title.setText(albumCoverStyle.titleRes);
return layout;
}
@Override
public void destroyItem(@NonNull ViewGroup collection,
int position,
@NonNull Object view) {
collection.removeView((View) view);
}
@Override
public int getCount() {
return AlbumCoverStyle.values().length;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@Override
public CharSequence getPageTitle(int position) {
return context.getString(AlbumCoverStyle.values()[position].titleRes);
}
}
}

View file

@ -2,8 +2,8 @@ package code.name.monkey.retromusic.preferences;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import android.text.Html;
import android.view.View;
import code.name.monkey.retromusic.R;

View file

@ -5,10 +5,10 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View file

@ -7,7 +7,7 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Environment;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import code.name.monkey.retromusic.Constants;
import code.name.monkey.retromusic.util.FileUtil;

View file

@ -21,8 +21,8 @@ import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class HistoryStore extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "history.db";

View file

@ -22,8 +22,8 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
import android.provider.MediaStore.Audio.AudioColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.loaders.SongLoader;
import code.name.monkey.retromusic.model.Song;

View file

@ -21,8 +21,8 @@ import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Interpolator;

View file

@ -1,8 +1,8 @@
package code.name.monkey.retromusic.rest;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.Constants;
import code.name.monkey.retromusic.RetroApplication;
import code.name.monkey.retromusic.rest.service.KuGouApiService;

View file

@ -1,8 +1,8 @@
package code.name.monkey.retromusic.rest;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.rest.service.LastFMService;
import java.io.File;
import okhttp3.Cache;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.rest.service;
import android.support.annotation.Nullable;
import androidx.annotation.Nullable;
import code.name.monkey.retromusic.BuildConfig;
import code.name.monkey.retromusic.rest.model.LastFmAlbum;

View file

@ -7,8 +7,8 @@ import android.media.MediaPlayer;
import android.media.audiofx.AudioEffect;
import android.net.Uri;
import android.os.PowerManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.util.Log;
import android.widget.Toast;

View file

@ -27,8 +27,8 @@ import android.os.PowerManager;
import android.os.Process;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.support.v4.media.MediaMetadataCompat;
import android.support.v4.media.session.MediaSessionCompat;
import android.support.v4.media.session.PlaybackStateCompat;

View file

@ -23,8 +23,8 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.service.media.MediaBrowserService;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;

View file

@ -5,11 +5,11 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.service.dreams.DreamService;
import android.support.transition.TransitionManager;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import androidx.transition.TransitionManager;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View file

@ -7,7 +7,7 @@ import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
import android.support.annotation.RequiresApi;
import androidx.annotation.RequiresApi;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.service.MusicService;

View file

@ -9,8 +9,8 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.support.v4.app.NotificationCompat;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import android.text.TextUtils;
import android.view.View;
import android.widget.RemoteViews;

View file

@ -13,8 +13,8 @@ import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.support.v4.app.NotificationCompat;
import android.support.v4.media.app.NotificationCompat.MediaStyle;
import androidx.core.app.NotificationCompat;
import androidx.media.app.NotificationCompat.MediaStyle;
import android.text.Html;
import code.name.monkey.retromusic.Constants;
import code.name.monkey.retromusic.R;

View file

@ -14,8 +14,8 @@ import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.support.v4.app.NotificationCompat;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import android.widget.RemoteViews;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.MaterialValueHelper;

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.service.playback;
import android.support.annotation.Nullable;
import androidx.annotation.Nullable;
public interface Playback {

View file

@ -1,7 +1,7 @@
package code.name.monkey.retromusic.transform;
import android.content.Context;
import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.view.View;
/**

View file

@ -1,6 +1,6 @@
package code.name.monkey.retromusic.transform;
import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.view.View;
/**

Some files were not shown because too many files have changed in this diff Show more