minor changes to about activity
This commit is contained in:
parent
b85fab728b
commit
7252046294
41 changed files with 16 additions and 469 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue