minor changes to about activity

This commit is contained in:
dkanada 2019-07-12 06:40:14 -07:00
commit 7252046294
41 changed files with 16 additions and 469 deletions

View file

@ -10,7 +10,6 @@ import com.anjlab.android.iab.v3.TransactionDetails;
import com.kabouzeid.appthemehelper.ThemeStore;
import com.kabouzeid.gramophone.appshortcuts.DynamicShortcutManager;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
@ -36,12 +35,12 @@ public class App extends Application {
.commit();
}
// Set up dynamic shortcuts
// dynamic shortcuts
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
new DynamicShortcutManager(this).initDynamicShortcuts();
}
// automatically restores purchases
// automatically restore purchases
billingProcessor = new BillingProcessor(this, App.GOOGLE_PLAY_LICENSE_KEY, new BillingProcessor.IBillingHandler() {
@Override
public void onProductPurchased(@NonNull String productId, TransactionDetails details) {
@ -49,7 +48,6 @@ public class App extends Application {
@Override
public void onPurchaseHistoryRestored() {
// Toast.makeText(App.this, R.string.restored_previous_purchase_please_restart, Toast.LENGTH_LONG).show();
}
@Override

View file

@ -1,101 +0,0 @@
package com.kabouzeid.gramophone.dialogs;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.internal.ThemeSingleton;
import com.kabouzeid.appthemehelper.util.ATHUtil;
import com.kabouzeid.appthemehelper.util.ColorUtil;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* @author Aidan Follestad (afollestad)
*/
public class ChangelogDialog extends DialogFragment {
public static ChangelogDialog create() {
return new ChangelogDialog();
}
@SuppressLint("InflateParams")
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final View customView;
try {
customView = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_web_view, null);
} catch (InflateException e) {
e.printStackTrace();
return new MaterialDialog.Builder(getActivity())
.title(android.R.string.dialog_alert_title)
.content("This device doesn't support web view, which is necessary to view the change log. It is missing a system component.")
.positiveText(android.R.string.ok)
.build();
}
MaterialDialog dialog = new MaterialDialog.Builder(getActivity())
.title(R.string.changelog)
.customView(customView, false)
.positiveText(android.R.string.ok)
.showListener(dialog1 -> {
if (getActivity() != null)
setChangelogRead(getActivity());
})
.build();
final WebView webView = customView.findViewById(R.id.web_view);
try {
// Load from phonograph-changelog.html in the assets folder
StringBuilder buf = new StringBuilder();
InputStream json = getActivity().getAssets().open("phonograph-changelog.html");
BufferedReader in = new BufferedReader(new InputStreamReader(json, "UTF-8"));
String str;
while ((str = in.readLine()) != null)
buf.append(str);
in.close();
// Inject color values for WebView body background and links
final String backgroundColor = colorToHex(ATHUtil.resolveColor(getActivity(), R.attr.md_background_color, Color.parseColor(ThemeSingleton.get().darkTheme ? "#424242" : "#ffffff")));
final String contentColor = ThemeSingleton.get().darkTheme ? "#ffffff" : "#000000";
webView.loadData(buf.toString()
.replace("{style-placeholder}",
String.format("body { background-color: %s; color: %s; }", backgroundColor, contentColor))
.replace("{link-color}", colorToHex(ThemeSingleton.get().positiveColor.getDefaultColor()))
.replace("{link-color-active}", colorToHex(ColorUtil.lightenColor(ThemeSingleton.get().positiveColor.getDefaultColor())))
, "text/html", "UTF-8");
} catch (Throwable e) {
webView.loadData("<h1>Unable to load</h1><p>" + e.getLocalizedMessage() + "</p>", "text/html", "UTF-8");
}
return dialog;
}
public static void setChangelogRead(@NonNull Context context) {
try {
PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
int currentVersion = pInfo.versionCode;
PreferenceUtil.getInstance(context).setLastChangeLogVersion(currentVersion);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
private static String colorToHex(int color) {
return Integer.toHexString(color).substring(2);
}
}

View file

@ -13,19 +13,15 @@ import android.view.View;
import android.widget.LinearLayout;
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;
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
import com.kabouzeid.gramophone.ui.activities.bugreport.BugReportActivity;
import com.kabouzeid.gramophone.ui.activities.intro.AppIntroActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
import de.psdev.licensesdialog.LicensesDialog;
/**
* @author Karim Abou Zeid (kabouzeid)
@ -61,18 +57,12 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
Toolbar toolbar;
@BindView(R.id.app_version)
TextView appVersion;
@BindView(R.id.changelog)
LinearLayout changelog;
@BindView(R.id.intro)
LinearLayout intro;
@BindView(R.id.licenses)
LinearLayout licenses;
@BindView(R.id.app_source)
LinearLayout appSource;
@BindView(R.id.write_an_email)
LinearLayout writeAnEmail;
@BindView(R.id.follow_on_twitter)
LinearLayout followOnTwitter;
@BindView(R.id.fork_on_github)
LinearLayout forkOnGitHub;
@BindView(R.id.visit_website)
LinearLayout visitWebsite;
@BindView(R.id.report_bugs)
@ -127,7 +117,6 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
private void setUpToolbar() {
toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
setSupportActionBar(toolbar);
//noinspection ConstantConditions
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@ -136,11 +125,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
}
private void setUpOnClickListeners() {
changelog.setOnClickListener(this);
intro.setOnClickListener(this);
licenses.setOnClickListener(this);
followOnTwitter.setOnClickListener(this);
forkOnGitHub.setOnClickListener(this);
appSource.setOnClickListener(this);
visitWebsite.setOnClickListener(this);
reportBugs.setOnClickListener(this);
writeAnEmail.setOnClickListener(this);
@ -174,20 +160,14 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "Unkown";
return "Unknown";
}
@Override
public void onClick(View v) {
if (v == changelog) {
ChangelogDialog.create().show(getSupportFragmentManager(), "CHANGELOG_DIALOG");
} else if (v == licenses) {
showLicenseDialog();
} else if (v == intro) {
startActivity(new Intent(this, AppIntroActivity.class));
} else if (v == followOnTwitter) {
if (v == followOnTwitter) {
openUrl(TWITTER);
} else if (v == forkOnGitHub) {
} else if (v == appSource) {
openUrl(GITHUB);
} else if (v == visitWebsite) {
openUrl(WEBSITE);
@ -238,18 +218,4 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
private void showLicenseDialog() {
new LicensesDialog.Builder(this)
.setNotices(R.raw.notices)
.setTitle(R.string.licenses)
.setNoticesCssStyle(getString(R.string.license_dialog_style)
.replace("{bg-color}", ThemeSingleton.get().darkTheme ? "424242" : "ffffff")
.replace("{text-color}", ThemeSingleton.get().darkTheme ? "ffffff" : "000000")
.replace("{license-bg-color}", ThemeSingleton.get().darkTheme ? "535353" : "eeeeee")
)
.setIncludeOwnLicense(true)
.build()
.show();
}
}

View file

@ -2,8 +2,6 @@ package com.kabouzeid.gramophone.ui.activities;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@ -29,7 +27,6 @@ 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.ChangelogDialog;
import com.kabouzeid.gramophone.dialogs.ScanMediaFolderChooserDialog;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
@ -40,7 +37,6 @@ import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.service.MusicService;
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
import com.kabouzeid.gramophone.ui.activities.intro.AppIntroActivity;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.folders.FoldersFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.LibraryFragment;
import com.kabouzeid.gramophone.util.MusicUtil;
@ -57,7 +53,7 @@ import butterknife.ButterKnife;
public class MainActivity extends AbsSlidingMusicPanelActivity {
public static final String TAG = MainActivity.class.getSimpleName();
public static final int APP_INTRO_REQUEST = 100;
public static final int INTRO_REQUEST = 100;
public static final int PURCHASE_REQUEST = 101;
private static final int LIBRARY = 0;
@ -83,7 +79,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
ButterKnife.bind(this);
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
navigationView.setFitsSystemWindows(false); // for header to go below statusbar
navigationView.setFitsSystemWindows(false);
}
setUpDrawerLayout();
@ -93,10 +89,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
} else {
restoreCurrentFragment();
}
if (!checkShowIntro()) {
showChangelog();
}
}
private void setMusicChooser(int key) {
@ -131,7 +123,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == APP_INTRO_REQUEST) {
if (requestCode == INTRO_REQUEST) {
blockRequestPermissions = false;
if (!hasPermissions()) {
requestPermissions();
@ -318,8 +310,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
}
}
private long parseIdFromIntent(@NonNull Intent intent, String longKey,
String stringKey) {
private long parseIdFromIntent(@NonNull Intent intent, String longKey, String stringKey) {
long id = intent.getLongExtra(longKey, -1);
if (id < 0) {
String idString = intent.getStringExtra(stringKey);
@ -346,29 +337,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
}
private boolean checkShowIntro() {
if (!PreferenceUtil.getInstance(this).introShown()) {
PreferenceUtil.getInstance(this).setIntroShown();
ChangelogDialog.setChangelogRead(this);
blockRequestPermissions = true;
new Handler().postDelayed(() -> startActivityForResult(new Intent(MainActivity.this, AppIntroActivity.class), APP_INTRO_REQUEST), 50);
return true;
}
return false;
}
private void showChangelog() {
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int currentVersion = pInfo.versionCode;
if (currentVersion != PreferenceUtil.getInstance(this).getLastChangelogVersion()) {
ChangelogDialog.create().show(getSupportFragmentManager(), "CHANGE_LOG_DIALOG");
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
public interface MainActivityFragmentCallbacks {
boolean handleBackPress();
}

View file

@ -1,49 +0,0 @@
package com.kabouzeid.gramophone.ui.activities.intro;
import android.os.Bundle;
import com.heinrichreimersoftware.materialintro.app.IntroActivity;
import com.heinrichreimersoftware.materialintro.slide.SimpleSlide;
import com.kabouzeid.gramophone.R;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
public class AppIntroActivity extends IntroActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setButtonCtaVisible(true);
setButtonNextVisible(false);
setButtonBackVisible(false);
setButtonCtaTintMode(BUTTON_CTA_TINT_MODE_TEXT);
addSlide(new SimpleSlide.Builder()
.title(R.string.app_name)
.description(R.string.welcome_to_phonograph)
.image(R.drawable.icon_web)
.background(R.color.md_blue_grey_100)
.backgroundDark(R.color.md_blue_grey_200)
.layout(R.layout.fragment_simple_slide_large_image)
.build());
addSlide(new SimpleSlide.Builder()
.title(R.string.label_playing_queue)
.description(R.string.open_playing_queue_instruction)
.image(R.drawable.tutorial_queue_swipe_up)
.background(R.color.md_deep_purple_500)
.backgroundDark(R.color.md_deep_purple_600)
.layout(R.layout.fragment_simple_slide_large_image)
.build());
addSlide(new SimpleSlide.Builder()
.title(R.string.label_playing_queue)
.description(R.string.rearrange_playing_queue_instruction)
.image(R.drawable.tutorial_rearrange_queue)
.background(R.color.md_indigo_500)
.backgroundDark(R.color.md_indigo_600)
.layout(R.layout.fragment_simple_slide_large_image)
.build());
}
}