use view binding for three more activities
This commit is contained in:
parent
4450ef403c
commit
1809a5d1dd
4 changed files with 73 additions and 106 deletions
|
|
@ -11,47 +11,40 @@ import android.os.CountDownTimer;
|
|||
import android.os.SystemClock;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.DialogAction;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.afollestad.materialdialogs.internal.ThemeSingleton;
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.databinding.DialogSleepTimerBinding;
|
||||
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||
import com.dkanada.gramophone.service.MusicService;
|
||||
import com.dkanada.gramophone.util.MusicUtil;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
import com.triggertrap.seekarc.SeekArc;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
public class SleepTimerDialog extends DialogFragment {
|
||||
@BindView(R.id.seek_arc)
|
||||
SeekArc seekArc;
|
||||
private DialogSleepTimerBinding binding;
|
||||
|
||||
@BindView(R.id.timer_display)
|
||||
TextView timerDisplay;
|
||||
|
||||
@BindView(R.id.should_finish_last_song)
|
||||
CheckBox shouldFinishLastSong;
|
||||
private TimerUpdater timerUpdater;
|
||||
private MaterialDialog materialDialog;
|
||||
|
||||
private int seekArcProgress;
|
||||
private MaterialDialog materialDialog;
|
||||
private TimerUpdater timerUpdater;
|
||||
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
super.onDismiss(dialog);
|
||||
|
||||
timerUpdater.cancel();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
binding = DialogSleepTimerBinding.inflate(getLayoutInflater());
|
||||
|
||||
timerUpdater = new TimerUpdater();
|
||||
materialDialog = new MaterialDialog.Builder(getActivity())
|
||||
.title(getActivity().getResources().getString(R.string.action_sleep_timer))
|
||||
|
|
@ -61,7 +54,7 @@ public class SleepTimerDialog extends DialogFragment {
|
|||
return;
|
||||
}
|
||||
|
||||
PreferenceUtil.getInstance(getActivity()).setSleepTimerFinishMusic(shouldFinishLastSong.isChecked());
|
||||
PreferenceUtil.getInstance(getActivity()).setSleepTimerFinishMusic(binding.shouldFinishLastSong.isChecked());
|
||||
|
||||
final int minutes = seekArcProgress;
|
||||
|
||||
|
|
@ -98,36 +91,34 @@ public class SleepTimerDialog extends DialogFragment {
|
|||
timerUpdater.start();
|
||||
}
|
||||
})
|
||||
.customView(R.layout.dialog_sleep_timer, false)
|
||||
.customView(binding.getRoot(), false)
|
||||
.build();
|
||||
|
||||
if (getActivity() == null || materialDialog.getCustomView() == null) {
|
||||
return materialDialog;
|
||||
}
|
||||
|
||||
ButterKnife.bind(this, materialDialog.getCustomView());
|
||||
|
||||
boolean finishMusic = PreferenceUtil.getInstance(getActivity()).getSleepTimerFinishMusic();
|
||||
shouldFinishLastSong.setChecked(finishMusic);
|
||||
binding.shouldFinishLastSong.setChecked(finishMusic);
|
||||
|
||||
seekArc.setProgressColor(ThemeSingleton.get().positiveColor.getDefaultColor());
|
||||
seekArc.setThumbColor(ThemeSingleton.get().positiveColor.getDefaultColor());
|
||||
binding.seekArc.setProgressColor(ThemeSingleton.get().positiveColor.getDefaultColor());
|
||||
binding.seekArc.setThumbColor(ThemeSingleton.get().positiveColor.getDefaultColor());
|
||||
|
||||
seekArc.post(() -> {
|
||||
int width = seekArc.getWidth();
|
||||
int height = seekArc.getHeight();
|
||||
binding.seekArc.post(() -> {
|
||||
int width = binding.seekArc.getWidth();
|
||||
int height = binding.seekArc.getHeight();
|
||||
int small = Math.min(width, height);
|
||||
|
||||
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(seekArc.getLayoutParams());
|
||||
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(binding.seekArc.getLayoutParams());
|
||||
layoutParams.height = small;
|
||||
seekArc.setLayoutParams(layoutParams);
|
||||
binding.seekArc.setLayoutParams(layoutParams);
|
||||
});
|
||||
|
||||
seekArcProgress = PreferenceUtil.getInstance(getActivity()).getLastSleepTimerValue();
|
||||
updateTimeDisplayTime();
|
||||
seekArc.setProgress(seekArcProgress);
|
||||
binding.seekArc.setProgress(seekArcProgress);
|
||||
|
||||
seekArc.setOnSeekArcChangeListener(new SeekArc.OnSeekArcChangeListener() {
|
||||
binding.seekArc.setOnSeekArcChangeListener(new SeekArc.OnSeekArcChangeListener() {
|
||||
@Override
|
||||
public void onProgressChanged(@NonNull SeekArc seekArc, int i, boolean b) {
|
||||
if (i < 1) {
|
||||
|
|
@ -153,7 +144,7 @@ public class SleepTimerDialog extends DialogFragment {
|
|||
}
|
||||
|
||||
private void updateTimeDisplayTime() {
|
||||
timerDisplay.setText(seekArcProgress + " min");
|
||||
binding.timerDisplay.setText(seekArcProgress + " min");
|
||||
}
|
||||
|
||||
private PendingIntent makeTimerPendingIntent(int flag) {
|
||||
|
|
@ -162,7 +153,7 @@ public class SleepTimerDialog extends DialogFragment {
|
|||
|
||||
private Intent makeTimerIntent() {
|
||||
Intent intent = new Intent(getActivity(), MusicService.class);
|
||||
if (shouldFinishLastSong.isChecked()) {
|
||||
if (binding.shouldFinishLastSong.isChecked()) {
|
||||
return intent.setAction(MusicService.ACTION_PENDING_QUIT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,13 @@ import android.content.Intent;
|
|||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
|
||||
import com.dkanada.gramophone.App;
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.databinding.ActivityLoginBinding;
|
||||
import com.dkanada.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
|
|
@ -22,29 +20,19 @@ import org.jellyfin.apiclient.interaction.Response;
|
|||
import org.jellyfin.apiclient.model.system.SystemInfo;
|
||||
import org.jellyfin.apiclient.model.users.AuthenticationResult;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
public class LoginActivity extends AbsBaseActivity implements View.OnClickListener {
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
@BindView(R.id.username)
|
||||
EditText username;
|
||||
@BindView(R.id.password)
|
||||
EditText password;
|
||||
@BindView(R.id.server)
|
||||
EditText server;
|
||||
@BindView(R.id.login)
|
||||
Button login;
|
||||
private ActivityLoginBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_login);
|
||||
setDrawUnderStatusbar();
|
||||
ButterKnife.bind(this);
|
||||
|
||||
binding = ActivityLoginBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
|
||||
setDrawUnderStatusbar();
|
||||
setStatusbarColorAuto();
|
||||
|
||||
setNavigationbarColorAuto();
|
||||
setTaskDescriptionColorAuto();
|
||||
|
||||
|
|
@ -57,13 +45,13 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen
|
|||
}
|
||||
|
||||
private void setUpToolbar() {
|
||||
toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||
setSupportActionBar(toolbar);
|
||||
binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||
setSupportActionBar(binding.toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
private void setUpOnClickListeners() {
|
||||
login.setOnClickListener(this);
|
||||
binding.login.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -78,24 +66,24 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen
|
|||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (v == login) {
|
||||
if (v == binding.login) {
|
||||
final Context context = this;
|
||||
if (server.getText().toString().trim().length() == 0) {
|
||||
if (binding.server.getText().toString().trim().length() == 0) {
|
||||
Toast.makeText(context, context.getResources().getString(R.string.error_login_empty_addr), Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
if (username.getText().toString().trim().length() == 0) {
|
||||
if (binding.username.getText().toString().trim().length() == 0) {
|
||||
Toast.makeText(context, context.getResources().getString(R.string.error_no_username), Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
App.getApiClient().ChangeServerLocation(server.getText().toString());
|
||||
App.getApiClient().AuthenticateUserAsync(username.getText().toString(), password.getText().toString(), new Response<AuthenticationResult>() {
|
||||
App.getApiClient().ChangeServerLocation(binding.server.getText().toString());
|
||||
App.getApiClient().AuthenticateUserAsync(binding.username.getText().toString(), binding.password.getText().toString(), new Response<AuthenticationResult>() {
|
||||
@Override
|
||||
public void onResponse(AuthenticationResult result) {
|
||||
if (result.getAccessToken() == null) return;
|
||||
check(context, server.getText().toString(), result.getUser().getId(), result.getAccessToken());
|
||||
check(context, binding.server.getText().toString(), result.getUser().getId(), result.getAccessToken());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.dkanada.gramophone.ui.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
|
@ -8,8 +7,8 @@ import android.os.Handler;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.dkanada.gramophone.databinding.ActivityMainDrawerLayoutBinding;
|
||||
import com.dkanada.gramophone.dialogs.ConfirmLogoutDialog;
|
||||
import com.google.android.material.navigation.NavigationView;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
|
||||
|
|
@ -41,16 +40,8 @@ import org.jellyfin.apiclient.model.dto.BaseItemDto;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
public class MainActivity extends AbsSlidingMusicPanelActivity {
|
||||
public static final String TAG = MainActivity.class.getSimpleName();
|
||||
|
||||
@BindView(R.id.navigation_view)
|
||||
NavigationView navigationView;
|
||||
@BindView(R.id.drawer_layout)
|
||||
DrawerLayout drawerLayout;
|
||||
private ActivityMainDrawerLayoutBinding binding;
|
||||
|
||||
@Nullable
|
||||
MainActivityFragmentCallbacks currentFragment;
|
||||
|
|
@ -65,13 +56,12 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setDrawUnderStatusbar();
|
||||
ButterKnife.bind(this);
|
||||
|
||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
|
||||
navigationView.setFitsSystemWindows(false);
|
||||
binding.navigationView.setFitsSystemWindows(false);
|
||||
}
|
||||
|
||||
Menu menu = navigationView.getMenu();
|
||||
Menu menu = binding.navigationView.getMenu();
|
||||
QueryUtil.getLibraries(new MediaCallback() {
|
||||
@Override
|
||||
public void onLoadMedia(List<?> media) {
|
||||
|
|
@ -118,20 +108,21 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
|
||||
@Override
|
||||
protected View createContentView() {
|
||||
@SuppressLint("InflateParams")
|
||||
View contentView = getLayoutInflater().inflate(R.layout.activity_main_drawer_layout, null);
|
||||
ViewGroup drawerContent = contentView.findViewById(R.id.drawer_content_container);
|
||||
binding = ActivityMainDrawerLayoutBinding.inflate(getLayoutInflater());
|
||||
|
||||
ViewGroup drawerContent = binding.getRoot().findViewById(R.id.drawer_content_container);
|
||||
drawerContent.addView(wrapSlidingMusicPanel(R.layout.activity_main_content));
|
||||
return contentView;
|
||||
|
||||
return binding.getRoot();
|
||||
}
|
||||
|
||||
private void setUpNavigationView() {
|
||||
int accentColor = ThemeStore.accentColor(this);
|
||||
NavigationViewUtil.setItemIconColors(navigationView, ATHUtil.resolveColor(this, R.attr.iconColor, ThemeStore.textColorSecondary(this)), accentColor);
|
||||
NavigationViewUtil.setItemTextColors(navigationView, ThemeStore.textColorPrimary(this), accentColor);
|
||||
NavigationViewUtil.setItemIconColors(binding.navigationView, ATHUtil.resolveColor(this, R.attr.iconColor, ThemeStore.textColorSecondary(this)), accentColor);
|
||||
NavigationViewUtil.setItemTextColors(binding.navigationView, ThemeStore.textColorPrimary(this), accentColor);
|
||||
|
||||
navigationView.setNavigationItemSelectedListener(menuItem -> {
|
||||
drawerLayout.closeDrawers();
|
||||
binding.navigationView.setNavigationItemSelectedListener(menuItem -> {
|
||||
binding.drawerLayout.closeDrawers();
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.nav_settings:
|
||||
new Handler().postDelayed(() -> startActivity(new Intent(MainActivity.this, SettingsActivity.class)), 200);
|
||||
|
|
@ -161,11 +152,11 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
|| menuItem.getItemId() == R.id.nav_about
|
||||
|| menuItem.getItemId() == R.id.nav_logout) return true;
|
||||
|
||||
for (int i = 0; i < navigationView.getMenu().size(); i++) {
|
||||
if (navigationView.getMenu().getItem(i) == menuItem) {
|
||||
navigationView.getMenu().getItem(i).setChecked(true);
|
||||
for (int i = 0; i < binding.navigationView.getMenu().size(); i++) {
|
||||
if (binding.navigationView.getMenu().getItem(i) == menuItem) {
|
||||
binding.navigationView.getMenu().getItem(i).setChecked(true);
|
||||
} else {
|
||||
navigationView.getMenu().getItem(i).setChecked(false);
|
||||
binding.navigationView.getMenu().getItem(i).setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -181,9 +172,9 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
if (!MusicPlayerRemote.getPlayingQueue().isEmpty()) {
|
||||
Song song = MusicPlayerRemote.getCurrentSong();
|
||||
if (navigationDrawerHeader == null) {
|
||||
navigationDrawerHeader = navigationView.inflateHeaderView(R.layout.navigation_drawer_header);
|
||||
navigationDrawerHeader = binding.navigationView.inflateHeaderView(R.layout.navigation_drawer_header);
|
||||
navigationDrawerHeader.setOnClickListener(v -> {
|
||||
drawerLayout.closeDrawers();
|
||||
binding.drawerLayout.closeDrawers();
|
||||
if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||
expandPanel();
|
||||
}
|
||||
|
|
@ -198,7 +189,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
.build().into(((ImageView) navigationDrawerHeader.findViewById(R.id.image)));
|
||||
} else {
|
||||
if (navigationDrawerHeader != null) {
|
||||
navigationView.removeHeaderView(navigationDrawerHeader);
|
||||
binding.navigationView.removeHeaderView(navigationDrawerHeader);
|
||||
navigationDrawerHeader = null;
|
||||
}
|
||||
}
|
||||
|
|
@ -219,10 +210,10 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
if (drawerLayout.isDrawerOpen(navigationView)) {
|
||||
drawerLayout.closeDrawer(navigationView);
|
||||
if (binding.drawerLayout.isDrawerOpen(binding.navigationView)) {
|
||||
binding.drawerLayout.closeDrawer(binding.navigationView);
|
||||
} else {
|
||||
drawerLayout.openDrawer(navigationView);
|
||||
binding.drawerLayout.openDrawer(binding.navigationView);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -233,8 +224,8 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
|
||||
@Override
|
||||
public boolean handleBackPress() {
|
||||
if (drawerLayout.isDrawerOpen(navigationView)) {
|
||||
drawerLayout.closeDrawers();
|
||||
if (binding.drawerLayout.isDrawerOpen(binding.navigationView)) {
|
||||
binding.drawerLayout.closeDrawers();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -244,13 +235,13 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
|
|||
@Override
|
||||
public void onPanelExpanded(View view) {
|
||||
super.onPanelExpanded(view);
|
||||
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
|
||||
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPanelCollapsed(View view) {
|
||||
super.onPanelCollapsed(view);
|
||||
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
|
||||
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
|
||||
}
|
||||
|
||||
public interface MainActivityFragmentCallbacks {
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ import androidx.preference.ListPreference;
|
|||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.TwoStatePreference;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import com.afollestad.materialdialogs.color.ColorChooserDialog;
|
||||
import com.dkanada.gramophone.databinding.ActivitySettingsBinding;
|
||||
import com.dkanada.gramophone.preferences.DirectPlayPreference;
|
||||
import com.dkanada.gramophone.preferences.DirectPlayPreferenceDialog;
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
|
|
@ -31,27 +31,24 @@ import com.dkanada.gramophone.preferences.NowPlayingScreenPreferenceDialog;
|
|||
import com.dkanada.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
public class SettingsActivity extends AbsBaseActivity implements ColorChooserDialog.ColorCallback {
|
||||
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
private ActivitySettingsBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_settings);
|
||||
setDrawUnderStatusbar();
|
||||
ButterKnife.bind(this);
|
||||
|
||||
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
|
||||
setDrawUnderStatusbar();
|
||||
setStatusbarColorAuto();
|
||||
|
||||
setNavigationbarColorAuto();
|
||||
setTaskDescriptionColorAuto();
|
||||
|
||||
toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||
setSupportActionBar(toolbar);
|
||||
binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||
setSupportActionBar(binding.toolbar);
|
||||
//noinspection ConstantConditions
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue