mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Added sync settings in preferences
This commit is contained in:
parent
26ba9467f1
commit
a68f45e7dc
8 changed files with 114 additions and 35 deletions
|
|
@ -226,6 +226,13 @@ public class MainActivity extends BaseActivity {
|
|||
}
|
||||
}
|
||||
|
||||
public void goFromSettingsToSync(Bundle bundle) {
|
||||
setBottomNavigationBarVisibility(false);
|
||||
setBottomSheetVisibility(false);
|
||||
|
||||
navController.navigate(R.id.action_settingsFragment_to_syncFragment, bundle);
|
||||
}
|
||||
|
||||
public void goToHome() {
|
||||
bottomNavigationView.setVisibility(View.VISIBLE);
|
||||
|
||||
|
|
|
|||
|
|
@ -98,19 +98,6 @@ public class HomeFragment extends Fragment {
|
|||
bundle.putString(Song.IS_FAVORITE, Song.IS_FAVORITE);
|
||||
activity.navController.navigate(R.id.action_homeFragment_to_songListPageFragment, bundle);
|
||||
});
|
||||
|
||||
bind.syncMusicButton.setOnClickListener(v -> {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext());
|
||||
builder.setMessage("Force reload your entire music library")
|
||||
.setTitle("Force sync")
|
||||
.setNegativeButton(R.string.ignore, null)
|
||||
.setPositiveButton("Sync", (dialog, id) -> {
|
||||
PreferenceUtil.getInstance(requireContext()).setSync(false);
|
||||
PreferenceUtil.getInstance(requireContext()).setSongGenreSync(false);
|
||||
activity.goToSync();
|
||||
})
|
||||
.show();
|
||||
});
|
||||
}
|
||||
|
||||
private void initDiscoverSongSlideView() {
|
||||
|
|
|
|||
|
|
@ -122,12 +122,8 @@ public class LibraryFragment extends Fragment {
|
|||
builder.setMessage("Sync song's genres otherwise nothing will be shown in each genre category")
|
||||
.setTitle("Song's genres not synchronized")
|
||||
.setNegativeButton(R.string.ignore, null)
|
||||
.setPositiveButton("Sync", (dialog, id) -> syncSongsPerGenre())
|
||||
.setPositiveButton("Sync", (dialog, id) -> activity.goToSync())
|
||||
.show();
|
||||
}
|
||||
}
|
||||
|
||||
private void syncSongsPerGenre() {
|
||||
activity.goToSync();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,35 @@
|
|||
package com.cappielloantonio.play.ui.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import com.cappielloantonio.play.R;
|
||||
import com.cappielloantonio.play.helper.ThemeHelper;
|
||||
import com.cappielloantonio.play.ui.activities.MainActivity;
|
||||
import com.cappielloantonio.play.util.PreferenceUtil;
|
||||
import com.cappielloantonio.play.util.SyncUtil;
|
||||
|
||||
public class SettingsFragment extends PreferenceFragmentCompat {
|
||||
private static final String TAG = "SettingsFragment";
|
||||
|
||||
private MainActivity activity;
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
activity = (MainActivity) getActivity();
|
||||
return super.onCreateView(inflater, container, savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
setPreferencesFromResource(R.xml.global_preferences, rootKey);
|
||||
|
|
@ -24,5 +43,37 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
|||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
Preference music_sync_button = findPreference(getString(R.string.music_sync));
|
||||
music_sync_button.setOnPreferenceClickListener(preference -> {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext());
|
||||
builder.setMessage("Force reload your entire music library")
|
||||
.setTitle("Force sync")
|
||||
.setNegativeButton(R.string.ignore, null)
|
||||
.setPositiveButton("Sync", (dialog, id) -> {
|
||||
PreferenceUtil.getInstance(requireContext()).setSync(false);
|
||||
PreferenceUtil.getInstance(requireContext()).setSongGenreSync(false);
|
||||
|
||||
Bundle bundle = SyncUtil.getSyncBundle(true, true, true, true, true, false);
|
||||
activity.goFromSettingsToSync(bundle);
|
||||
})
|
||||
.show();
|
||||
return true;
|
||||
});
|
||||
|
||||
Preference cross_sync_button = findPreference(getString(R.string.genres_music_cross_sync));
|
||||
cross_sync_button.setOnPreferenceClickListener(preference -> {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext());
|
||||
builder.setMessage("Sync song's genres otherwise nothing will be shown in each genre category")
|
||||
.setTitle("Song's genres not synchronized")
|
||||
.setNegativeButton(R.string.ignore, null)
|
||||
.setPositiveButton("Sync", (dialog, id) -> {
|
||||
Bundle bundle = SyncUtil.getSyncBundle(false, false, true, false, false, true);
|
||||
activity.goFromSettingsToSync(bundle);
|
||||
})
|
||||
.show();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -293,21 +293,6 @@
|
|||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="8dp" />
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/sync_music_button"
|
||||
style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:layout_gravity="center"
|
||||
android:textColor="@color/titleTextColor"
|
||||
android:textAllCaps="false"
|
||||
app:iconTint="@color/titleTextColor"
|
||||
android:text="@string/action_sync_music"
|
||||
app:icon="@drawable/ic_downloading" />
|
||||
</LinearLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
|
|
|
|||
|
|
@ -111,7 +111,13 @@
|
|||
android:id="@+id/settingsFragment"
|
||||
android:name="com.cappielloantonio.play.ui.fragment.SettingsFragment"
|
||||
android:label="SettingsFragment"
|
||||
tools:layout="@layout/fragment_settings"/>
|
||||
tools:layout="@layout/fragment_settings">
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment_to_syncFragment"
|
||||
app:destination="@id/syncFragment"
|
||||
app:popUpTo="@id/settingsFragment"
|
||||
app:popUpToInclusive="true" />
|
||||
</fragment>
|
||||
<fragment
|
||||
android:id="@+id/searchFragment"
|
||||
android:name="com.cappielloantonio.play.ui.fragment.SearchFragment"
|
||||
|
|
|
|||
|
|
@ -24,6 +24,19 @@
|
|||
<string name="label_placeholder">--</string>
|
||||
<string name="save_filters">Save filters between sessions</string>
|
||||
|
||||
<string name="sync_header">Synchronization</string>
|
||||
<string name="music_sync">Music sync</string>
|
||||
<string name="music_sync_caption">Sync tracks, albums, artists, genres and playlists</string>
|
||||
<string name="genres_music_cross_sync">Genres-music cross sync</string>
|
||||
<string name="genres_music_cross_sync_caption">Cross sync genres for each track</string>
|
||||
<string name="about_header">About</string>
|
||||
<string name="summary_about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</string>
|
||||
<string name="app_version">1.1</string>
|
||||
<string name="title_version">Version</string>
|
||||
<string name="github_page">Github</string>
|
||||
<string name="development">Follow the development</string>
|
||||
<string name="github_url">https://github.com/CappielloAntonio/Play</string>
|
||||
|
||||
<string name="battery_optimizations_title">Battery Optimizations</string>
|
||||
<string name="battery_optimizations_message">Please disable battery optimizations for media playback while the screen is off.</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory app:title="@string/general_header">
|
||||
<ListPreference
|
||||
app:defaultValue="400000000"
|
||||
|
|
@ -27,4 +28,37 @@
|
|||
app:title="@string/save_filters"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/sync_header">
|
||||
<Preference
|
||||
android:title="@string/music_sync"
|
||||
android:key="@string/music_sync"
|
||||
android:summary="@string/music_sync_caption" />
|
||||
|
||||
<Preference
|
||||
android:title="@string/genres_music_cross_sync"
|
||||
android:key="@string/genres_music_cross_sync"
|
||||
android:summary="@string/genres_music_cross_sync_caption" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/about_header">
|
||||
<Preference
|
||||
app:selectable="false"
|
||||
app:summary="@string/summary_about" />
|
||||
|
||||
<Preference
|
||||
app:title="@string/title_version"
|
||||
app:summary="@string/app_version" />
|
||||
|
||||
<!-- preference opens url in browser -->
|
||||
<Preference
|
||||
app:title="@string/github_page"
|
||||
app:summary="@string/development">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="@string/github_url" />
|
||||
</Preference>
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
Loading…
Add table
Add a link
Reference in a new issue