Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.00 KB | None | 0 0
  1. package com.serg.chuprin.tageditor.common.mvp.model;
  2.  
  3. import android.content.SharedPreferences;
  4. import android.provider.MediaStore;
  5. import android.support.annotation.StringRes;
  6.  
  7. import com.com.serg.chuprin.tageditor.R;
  8. import com.orhanobut.hawk.Hawk;
  9.  
  10. import org.polaric.colorful.Colorful;
  11.  
  12. import javax.inject.Inject;
  13.  
  14. import static com.serg.chuprin.tageditor.common.mvp.model.PreferencesManager.Sorting.Albums.KEY;
  15.  
  16. public class PreferencesManager {
  17.     private final ResourcesManager mResourcesManager;
  18.     private final SharedPreferences mDefaultPreferences;
  19.  
  20.     @Inject
  21.     public PreferencesManager(ResourcesManager manager, SharedPreferences sharedPreferences) {
  22.         mResourcesManager = manager;
  23.         mDefaultPreferences = sharedPreferences;
  24.     }
  25.  
  26.     public String getAlbumsSorting() {
  27.         return mDefaultPreferences.getString(KEY, Sorting.Albums.NAME_ASC);
  28.     }
  29.  
  30.     public void setAlbumsSorting(String sorting) {
  31.         mDefaultPreferences.edit().putString(KEY, sorting).apply();
  32.     }
  33.  
  34.     public String getSongsSorting() {
  35.         return mDefaultPreferences.getString(Sorting.Songs.KEY, Sorting.Songs.TITLE_ASC);
  36.     }
  37.  
  38.     public void setSongsSorting(String sorting) {
  39.         mDefaultPreferences.edit().putString(Sorting.Songs.KEY, sorting).apply();
  40.     }
  41.  
  42.     public String getArtistsSorting() {
  43.         return mDefaultPreferences.getString(Sorting.Artists.KEY, Sorting.Artists.ARTIST_ASC);
  44.     }
  45.  
  46.     public void setArtistsSorting(String sorting) {
  47.         mDefaultPreferences.edit().putString(Sorting.Artists.KEY, sorting).apply();
  48.     }
  49.  
  50.     public int getFoldersSorting() {
  51.         return mDefaultPreferences.getInt(Sorting.Folders.KEY, Sorting.Folders.NAME_ASC);
  52.     }
  53.  
  54.     public boolean showOnlyMusicFolders() {
  55.         return mDefaultPreferences.getBoolean(getString(R.string.only_music_folders), false);
  56.     }
  57.  
  58.     public String getLastDirectory() {
  59.         return mDefaultPreferences.getString(FoldersPreferences.LAST_FOLDER, "");
  60.     }
  61.  
  62.     public void setLastDirectory(String absolutePath) {
  63.         mDefaultPreferences.edit().putString(FoldersPreferences.LAST_FOLDER, absolutePath).apply();
  64.     }
  65.  
  66.     public String getPermissionPath() {
  67.         return mDefaultPreferences.getString(Keys.KEY_STORAGE_PERMISSION_PATH, "");
  68.  
  69.     }
  70.  
  71.     public void savePermissionPath(String permissionPath) {
  72.         mDefaultPreferences.edit().putString(Keys.KEY_STORAGE_PERMISSION_PATH, permissionPath).apply();
  73.     }
  74.  
  75.     public void savePurchaseToken(String token) {
  76.         mDefaultPreferences.edit().putString(Keys.KEY_PURCHASE_TOKEN, token).apply();
  77.     }
  78.  
  79.     public String getEncoding() {
  80.         return mDefaultPreferences.getString(Keys.KEY_ENCODING, "UTF-8");
  81.     }
  82.  
  83.     public void setEncoding(String encoding) {
  84.         mDefaultPreferences.edit().putString(Keys.KEY_ENCODING, encoding).apply();
  85.     }
  86.  
  87.     public String getPurchaseToken() {
  88.         return mDefaultPreferences.getString(Keys.KEY_PURCHASE_TOKEN, "");
  89.     }
  90.  
  91.     public boolean isVerified() {
  92.         return Hawk.get(Keys.KEY_V, 0) == 1;
  93.     }
  94.  
  95.     public void setVerified(boolean verified) {
  96.         Hawk.put(Keys.KEY_V, verified ? 1 : 0);
  97.     }
  98.  
  99.     public boolean isFirstSongOpen() {
  100.         return mDefaultPreferences.getBoolean(Keys.KEY_FIRST_OPEN_SONGS, true);
  101.     }
  102.  
  103.     public boolean isGenresAutocompleteEnabled() {
  104.         return mDefaultPreferences.getBoolean(getString(R.string.genres_autocomplete), true);
  105.     }
  106.  
  107.     public boolean shouldAddLeadingZero() {
  108.         return mDefaultPreferences.getBoolean(getString(R.string.leading_zero), true);
  109.     }
  110.  
  111.     public void setSongsFirstOpened() {
  112.         mDefaultPreferences.edit().putBoolean(Keys.KEY_FIRST_OPEN_SONGS, false).apply();
  113.     }
  114.  
  115.     public int getTheme() {
  116.         String defaultValue = getString(R.string.pref_theme_light);
  117.         String themePref = mDefaultPreferences.getString(getString(R.string.theme), defaultValue);
  118.  
  119.         int resultTheme;
  120.         if (themePref.equals(getString(R.string.pref_theme_dark))) {
  121.             resultTheme = Colorful.Theme.DARK;
  122.         } else if (themePref.equals(getString(R.string.pref_theme_black))) {
  123.             resultTheme = Colorful.Theme.BLACK;
  124.         } else {
  125.             resultTheme = Colorful.Theme.LIGHT;
  126.         }
  127.         return resultTheme;
  128.     }
  129.  
  130.     private String getString(@StringRes int res) {
  131.         return mResourcesManager.getString(res);
  132.     }
  133.  
  134.     public boolean albumArtistEnabled() {
  135.         return mDefaultPreferences.getBoolean(getString(R.string.album_artist), false);
  136.     }
  137.  
  138.     public void setAppCrashed() {
  139.         mDefaultPreferences.edit().putBoolean(Keys.KEY_APP_CRASHED, true).apply();
  140.     }
  141.  
  142.     public boolean isAppCrashed() {
  143.         return mDefaultPreferences.getBoolean(Keys.KEY_APP_CRASHED, false);
  144.     }
  145.  
  146.     public interface FoldersPreferences {
  147.         String FOLDERS_FIRST = "is_folders_first";
  148.         String REMEMBER_LAST_FOLDER = "remember_last_folder";
  149.         String LAST_FOLDER = "last_folder";
  150.     }
  151.  
  152.     public interface Sorting {
  153.         interface Albums {
  154.             String NAME_ASC = MediaStore.Audio.Albums.ALBUM + " ASC";
  155.             String NAME_DESC = MediaStore.Audio.Albums.ALBUM + " DESC";
  156.             String ARTIST_ASC = MediaStore.Audio.Albums.ARTIST + " ASC";
  157.             String ARTIST_DESC = MediaStore.Audio.Albums.ARTIST + " DESC";
  158.             String YEAR_ASC = MediaStore.Audio.Albums.FIRST_YEAR + " ASC";
  159.             String YEAR_DESC = MediaStore.Audio.Albums.FIRST_YEAR + " DESC";
  160.             String KEY = "albums_sorting";
  161.         }
  162.  
  163.         interface Songs {
  164.             String TITLE_ASC = MediaStore.Audio.Media.TITLE + " ASC";
  165.             String TITLE_DESC = MediaStore.Audio.Media.TITLE + " DESC";
  166.             String ARTIST_ASC = MediaStore.Audio.Media.ARTIST + " ASC";
  167.             String ARTIST_DESC = MediaStore.Audio.Media.ARTIST + " DESC";
  168.             String ALBUM_DESC = MediaStore.Audio.Media.ALBUM + " DESC";
  169.             String ALBUM_ASC = MediaStore.Audio.Media.ALBUM + " ASC";
  170.             String DATE_ASC = MediaStore.Audio.Media.DATE_ADDED + " ASC";
  171.             String DATE_DESC = MediaStore.Audio.Media.DATE_ADDED + " DESC";
  172.             String KEY = "songs_sorting";
  173.         }
  174.  
  175.         interface Folders {
  176.             int NAME_ASC = 1;
  177.             int NAME_DESC = 2;
  178.             int DATE_DESC = 3;
  179.             int DATE_ASC = 4;
  180.             String KEY = "folders_sorting";
  181.         }
  182.  
  183.         interface Artists {
  184.             String ARTIST_ASC = MediaStore.Audio.Artists.ARTIST + " ASC";
  185.             String ARTIST_DESC = MediaStore.Audio.Artists.ARTIST + " DESC";
  186.             String KEY = "artist_sorting";
  187.         }
  188.     }
  189.  
  190.     private interface Keys {
  191.         String KEY_V = "key_v";
  192.         String KEY_STORAGE_PERMISSION_PATH = "storage_permission";
  193.         String KEY_PURCHASE_TOKEN = "key_purchase_token";
  194.         String KEY_ENCODING = "save_encoding";
  195.         String KEY_FIRST_OPEN_SONGS = "KEY_FIRST_OPEN_SONGS";
  196.         String KEY_APP_CRASHED = "app_crashed";
  197.     }
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement