Add blacklist option and minor code improvements

This commit is contained in:
Karim Abou Zeid 2017-09-08 16:22:18 +02:00
commit 8a75b8b68f
13 changed files with 574 additions and 28 deletions

View file

@ -146,11 +146,10 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
if (!hasPermissions()) {
requestPermissions();
}
checkSetUpPro(); // good chance that pro version check was delayed on first start
} else if (requestCode == PURCHASE_REQUEST) {
if (resultCode == RESULT_OK) {
if (App.isProVersion()) {
setUpPro();
}
checkSetUpPro();
}
}
}
@ -174,9 +173,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
NavigationViewUtil.setItemIconColors(navigationView, ATHUtil.resolveColor(this, R.attr.iconColor, ThemeStore.textColorSecondary(this)), accentColor);
NavigationViewUtil.setItemTextColors(navigationView, ThemeStore.textColorPrimary(this), accentColor);
if (App.isProVersion()) {
setUpPro();
}
checkSetUpPro();
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
@ -228,6 +225,12 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
});
}
private void checkSetUpPro() {
if (App.isProVersion()) {
setUpPro();
}
}
private void setUpPro() {
navigationView.getMenu().removeGroup(R.id.navigation_drawer_menu_category_buy_pro);
}

View file

@ -29,6 +29,8 @@ import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.appshortcuts.DynamicShortcutManager;
import com.kabouzeid.gramophone.misc.NonProAllowedColors;
import com.kabouzeid.gramophone.preferences.BlacklistPreference;
import com.kabouzeid.gramophone.preferences.BlacklistPreferenceDialog;
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreference;
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreferenceDialog;
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
@ -155,6 +157,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
addPreferencesFromResource(R.xml.pref_lockscreen);
addPreferencesFromResource(R.xml.pref_audio);
addPreferencesFromResource(R.xml.pref_playlists);
addPreferencesFromResource(R.xml.pref_blacklist);
}
@Nullable
@ -162,6 +165,8 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
public DialogFragment onCreatePreferenceDialog(Preference preference) {
if (preference instanceof NowPlayingScreenPreference) {
return NowPlayingScreenPreferenceDialog.newInstance();
} else if (preference instanceof BlacklistPreference) {
return BlacklistPreferenceDialog.newInstance();
}
return super.onCreatePreferenceDialog(preference);
}

View file

@ -455,8 +455,8 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
@Override
public boolean accept(File file) {
return !file.isHidden() && (file.isDirectory() ||
FileUtil.fileIsMimeType(file, "audio/*", MimeTypeMap.getSingleton()) ||
FileUtil.fileIsMimeType(file, "application/ogg", MimeTypeMap.getSingleton()));
FileUtil.fileIsMimeType(file, "audio/*", MimeTypeMap.getSingleton()) ||
FileUtil.fileIsMimeType(file, "application/ogg", MimeTypeMap.getSingleton()));
}
};
@ -658,12 +658,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
paths = new String[files.size()];
for (int i = 0; i < files.size(); i++) {
File f = files.get(i);
try {
paths[i] = f.getCanonicalPath(); // canonical path is important here because we want to compare the path with the media store entry later
} catch (IOException e) {
e.printStackTrace();
paths[i] = f.getPath();
}
paths[i] = FileUtil.safeGetCanonicalPath(f);
if (isCancelled() || checkCallbackReference() == null) return paths;
}