Add pro version

This commit is contained in:
Karim Abou Zeid 2017-08-30 20:52:01 +02:00
commit 1b85252f92
11 changed files with 354 additions and 12 deletions

View file

@ -15,6 +15,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.internal.ThemeSingleton;
import com.kabouzeid.appthemehelper.ThemeStore;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.dialogs.ChangelogDialog;
import com.kabouzeid.gramophone.dialogs.DonationsDialog;
@ -159,11 +160,11 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
private static String getCurrentVersionName(@NonNull final Context context) {
try {
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + (App.isProVersion() ? " Pro" : "");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "0.0.0";
return "Unkown";
}
@Override

View file

@ -22,14 +22,16 @@ import android.view.ViewGroup;
import android.view.WindowInsets;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.kabouzeid.appthemehelper.ThemeStore;
import com.kabouzeid.appthemehelper.util.ATHUtil;
import com.kabouzeid.appthemehelper.util.NavigationViewUtil;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.dialogs.BuyDialog;
import com.kabouzeid.gramophone.dialogs.ChangelogDialog;
import com.kabouzeid.gramophone.dialogs.DonationsDialog;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.SearchQueryHelper;
@ -108,6 +110,12 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
}
private void setMusicChooser(int key) {
if (!App.isProVersion() && key == FOLDERS) {
Toast.makeText(this, R.string.folder_view_is_a_pro_feature, Toast.LENGTH_LONG).show();
BuyDialog.create().show(getSupportFragmentManager(), "BUY_DIALOG");
key = LIBRARY;
}
PreferenceUtil.getInstance(this).setLastMusicChooser(key);
switch (key) {
case LIBRARY:
@ -160,6 +168,9 @@ 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()) {
navigationView.getMenu().removeGroup(R.id.navigation_drawer_menu_category_buy_pro);
}
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
@ -181,11 +192,11 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
}
}, 200);
break;
case R.id.support_development:
case R.id.buy_pro:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
DonationsDialog.create().show(getSupportFragmentManager(), "DONATION_DIALOG");
BuyDialog.create().show(getSupportFragmentManager(), "BUY_DIALOG");
}
}, 200);
break;

View file

@ -18,15 +18,19 @@ import android.support.v7.preference.TwoStatePreference;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.afollestad.materialdialogs.color.ColorChooserDialog;
import com.kabouzeid.appthemehelper.ThemeStore;
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEColorPreference;
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat;
import com.kabouzeid.appthemehelper.util.ColorUtil;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.appshortcuts.DynamicShortcutManager;
import com.kabouzeid.gramophone.dialogs.BuyDialog;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.misc.NonProAllowedColors;
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreference;
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreferenceDialog;
import com.kabouzeid.gramophone.service.MusicService;
@ -34,6 +38,8 @@ import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.Arrays;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -71,11 +77,29 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
public void onColorSelection(@NonNull ColorChooserDialog dialog, @ColorInt int selectedColor) {
switch (dialog.getTitle()) {
case R.string.primary_color:
if (!App.isProVersion()) {
Arrays.sort(NonProAllowedColors.PRIMARY_COLORS);
if (Arrays.binarySearch(NonProAllowedColors.PRIMARY_COLORS, selectedColor) < 0) {
// color wasn't found
Toast.makeText(this, R.string.only_the_first_5_colors_available, Toast.LENGTH_LONG).show();
BuyDialog.create().show(getSupportFragmentManager(), "BUY_DIALOG");
return;
}
}
ThemeStore.editTheme(this)
.primaryColor(selectedColor)
.commit();
break;
case R.string.accent_color:
if (!App.isProVersion()) {
Arrays.sort(NonProAllowedColors.ACCENT_COLORS);
if (Arrays.binarySearch(NonProAllowedColors.ACCENT_COLORS, selectedColor) < 0) {
// color wasn't found
Toast.makeText(this, R.string.only_the_first_5_colors_available, Toast.LENGTH_LONG).show();
BuyDialog.create().show(getSupportFragmentManager(), "BUY_DIALOG");
return;
}
}
ThemeStore.editTheme(this)
.accentColor(selectedColor)
.commit();
@ -175,9 +199,17 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
generalTheme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, @NonNull Object o) {
String themeName = (String) o;
if (themeName.equals("black") && !App.isProVersion()) {
Toast.makeText(getActivity(), R.string.black_theme_is_a_pro_feature, Toast.LENGTH_LONG).show();
BuyDialog.create().show(getFragmentManager(), "BUY_DIALOG");
return false;
}
int theme = PreferenceUtil.getThemeResFromPrefValue(themeName);
setSummary(generalTheme, o);
ThemeStore.editTheme(getActivity())
.activityTheme(PreferenceUtil.getThemeResFromPrefValue((String) o))
.activityTheme(theme)
.commit();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {