From ce918acb45eb5c55c6e59f716c9268278a9fe07d Mon Sep 17 00:00:00 2001 From: h4h13 Date: Sun, 8 Dec 2019 20:05:03 +0530 Subject: [PATCH] Fix navigation bar color on dialog --- app/build.gradle | 6 +- app/src/main/assets/retro-changelog.html | 2 +- .../retromusic/activities/UserInfoActivity.kt | 70 +-- .../activities/bugreport/BugReportActivity.kt | 466 +++++++++--------- .../dialogs/OptionsSheetDialogFragment.kt | 1 - .../mainactivity/folders/FoldersFragment.java | 8 +- .../notification/PlayingNotificationImpl24.kt | 41 +- .../notification/PlayingNotificationOreo.kt | 2 +- .../retromusic/util/PreferenceUtil.java | 4 +- .../retromusic/views/OptionMenuItemView.java | 3 - app/src/main/res/layout/item_album_card.xml | 1 - app/src/main/res/layout/item_contributor.xml | 7 +- .../res/layout/item_contributor_header.xml | 2 +- app/src/main/res/layout/item_grid_circle.xml | 8 +- app/src/main/res/layout/item_list.xml | 5 +- app/src/main/res/layout/item_option_menu.xml | 2 +- .../layout/layout_notification_expanded.xml | 1 + app/src/main/res/layout/list_item_view.xml | 2 +- app/src/main/res/values-night-v27/styles.xml | 37 ++ app/src/main/res/values-night/styles.xml | 1 + .../main/res/values-v27/styles_parents.xml | 79 +++ app/src/main/res/values/styles_parents.xml | 38 +- .../util/ToolbarContentTintHelper.java | 12 +- 23 files changed, 411 insertions(+), 387 deletions(-) create mode 100644 app/src/main/res/values-night-v27/styles.xml create mode 100644 app/src/main/res/values-v27/styles_parents.xml diff --git a/app/build.gradle b/app/build.gradle index ad77453c..9358d533 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,16 +4,16 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { - compileSdkVersion 28 + compileSdkVersion 29 defaultConfig { minSdkVersion 21 - targetSdkVersion 28 + targetSdkVersion 29 renderscriptTargetApi 28 //must match target sdk and build tools vectorDrawables.useSupportLibrary = true applicationId "code.name.monkey.retromusic" - versionCode 392 + versionCode 393 versionName '3.4.800' multiDexEnabled true diff --git a/app/src/main/assets/retro-changelog.html b/app/src/main/assets/retro-changelog.html index c3041fbd..6b8f9172 100644 --- a/app/src/main/assets/retro-changelog.html +++ b/app/src/main/assets/retro-changelog.html @@ -1 +1 @@ -

v3.4.800

v3.4.700

v3.4.600

v3.4.500

v3.3.200

v.3.3.100

v3.3.000

v3.2.240

v3.2.220

v3.2.203

v3.2.135

v3.2.125

v3.2.120

v3.2.105

v3.2.100

v3.2.000

v3.1.900

v3.1.850

v3.1.800

v3.1.700

v3.1.400

v3.1.300

If you see entire app white or dark or black select same theme in settings to fix

FAQ's

*If you face any UI related issues you clear app data and cache, if its not working try to uninstall and install again.

\ No newline at end of file +

v3.4.800

v3.4.700

v3.4.600

v3.4.500

v3.3.200

v.3.3.100

v3.3.000

v3.2.240

v3.2.220

v3.2.203

v3.2.135

v3.2.125

v3.2.120

v3.2.105

v3.2.100

v3.2.000

v3.1.900

v3.1.850

v3.1.800

v3.1.700

v3.1.400

v3.1.300

If you see entire app white or dark or black select same theme in settings to fix

FAQ's

*If you face any UI related issues you clear app data and cache, if its not working try to uninstall and install again.

\ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt index 5da7633e..c623d11d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt @@ -1,7 +1,6 @@ package code.name.monkey.retromusic.activities import android.app.Activity -import android.content.ContentUris import android.content.Context import android.content.ContextWrapper import android.content.Intent @@ -9,7 +8,6 @@ import android.content.res.ColorStateList import android.graphics.Bitmap import android.net.Uri import android.os.Bundle -import android.provider.DocumentsContract import android.provider.MediaStore.Images.Media import android.provider.MediaStore.Images.Media.getBitmap import android.text.TextUtils @@ -123,10 +121,7 @@ class UserInfoActivity : AbsBaseActivity() { pickImageIntent.putExtra("aspectY", 9) pickImageIntent.putExtra("scale", true) //intent.setAction(Intent.ACTION_GET_CONTENT); - startActivityForResult( - Intent.createChooser(pickImageIntent, "Select Picture"), - PICK_BANNER_REQUEST - ) + startActivityForResult(Intent.createChooser(pickImageIntent, "Select Picture"), PICK_BANNER_REQUEST) } private fun pickNewPhoto() { @@ -138,10 +133,7 @@ class UserInfoActivity : AbsBaseActivity() { pickImageIntent.putExtra("aspectX", 1) pickImageIntent.putExtra("aspectY", 1) pickImageIntent.putExtra("scale", true) - startActivityForResult( - Intent.createChooser(pickImageIntent, "Select Picture"), - PICK_IMAGE_REQUEST - ) + startActivityForResult(Intent.createChooser(pickImageIntent, "Select Picture"), PICK_IMAGE_REQUEST) } public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -180,32 +172,6 @@ class UserInfoActivity : AbsBaseActivity() { } } - private fun getImagePathFromUri(aUri: Uri?): String? { - var imagePath: String? = null - if (aUri == null) { - return imagePath - } - if (DocumentsContract.isDocumentUri(App.getContext(), aUri)) { - val documentId = DocumentsContract.getDocumentId(aUri) - if ("com.android.providers.media.documents" == aUri.authority) { - val id = documentId.split(":".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()[1] - val selection = Media._ID + "=" + id - imagePath = getImagePath(Media.EXTERNAL_CONTENT_URI, selection) - } else if ("com.android.providers.downloads.documents" == aUri.authority) { - val contentUri = ContentUris.withAppendedId( - Uri.parse("content://downloads/public_downloads"), - java.lang.Long.valueOf(documentId) - ) - imagePath = getImagePath(contentUri, null) - } - } else if ("content".equals(aUri.scheme!!, ignoreCase = true)) { - imagePath = getImagePath(aUri, null) - } else if ("file".equals(aUri.scheme!!, ignoreCase = true)) { - imagePath = aUri.path - } - return imagePath - } - private fun getImagePath(aUri: Uri, aSelection: String?): String? { var path: String? = null val cursor = App.getContext().contentResolver.query(aUri, null, aSelection, null, null) @@ -219,27 +185,25 @@ class UserInfoActivity : AbsBaseActivity() { } private fun loadBannerFromStorage(profileImagePath: String) { - disposable.add( - Compressor(this).setQuality(100).setCompressFormat(Bitmap.CompressFormat.WEBP).compressToBitmapAsFlowable( - File(profileImagePath, USER_BANNER) - ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe( - { bitmap -> bannerImage.setImageBitmap(bitmap) }, - { t -> println() }) + disposable.add(Compressor(this).setQuality(100) + .setCompressFormat(Bitmap.CompressFormat.WEBP) + .compressToBitmapAsFlowable(File(profileImagePath, USER_BANNER)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ bitmap -> bannerImage.setImageBitmap(bitmap) }, { t -> println(t) }) ) } private fun loadImageFromStorage(path: String) { - disposable.add( - Compressor(this).setMaxHeight(300).setMaxWidth(300).setQuality(75).setCompressFormat( - Bitmap.CompressFormat.WEBP - ).compressToBitmapAsFlowable( - File( - path, - USER_PROFILE - ) - ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe( - { bitmap -> userImage!!.setImageBitmap(bitmap) }, - { t -> println() }) + disposable.add(Compressor(this) + .setMaxHeight(300) + .setMaxWidth(300) + .setQuality(75) + .setCompressFormat(Bitmap.CompressFormat.WEBP) + .compressToBitmapAsFlowable(File(path, USER_PROFILE)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ bitmap -> userImage.setImageBitmap(bitmap) }, { t -> println(t) }) ) } diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/BugReportActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/BugReportActivity.kt index 37106a52..a8a57809 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/BugReportActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/BugReportActivity.kt @@ -48,284 +48,284 @@ private const val RESULT_ISSUES_NOT_ENABLED = "RESULT_ISSUES_NOT_ENABLED" private const val RESULT_UNKNOWN = "RESULT_UNKNOWN" @StringDef( - RESULT_SUCCESS, - RESULT_BAD_CREDENTIALS, - RESULT_INVALID_TOKEN, - RESULT_ISSUES_NOT_ENABLED, - RESULT_UNKNOWN + RESULT_SUCCESS, + RESULT_BAD_CREDENTIALS, + RESULT_INVALID_TOKEN, + RESULT_ISSUES_NOT_ENABLED, + RESULT_UNKNOWN ) @Retention(AnnotationRetention.SOURCE) private annotation class Result open class BugReportActivity : AbsThemeActivity() { - private var deviceInfo: DeviceInfo? = null + private var deviceInfo: DeviceInfo? = null - override fun onCreate(savedInstanceState: Bundle?) { - setDrawUnderStatusBar() - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_bug_report) - setStatusbarColorAuto() - setNavigationbarColorAuto() - setTaskDescriptionColorAuto() + override fun onCreate(savedInstanceState: Bundle?) { + setDrawUnderStatusBar() + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_bug_report) + setStatusbarColorAuto() + setNavigationbarColorAuto() + setTaskDescriptionColorAuto() - initViews() + initViews() - if (TextUtils.isEmpty(title)) setTitle(R.string.report_an_issue) + if (TextUtils.isEmpty(title)) setTitle(R.string.report_an_issue) - deviceInfo = DeviceInfo(this) - airTextDeviceInfo.text = deviceInfo.toString() - } + deviceInfo = DeviceInfo(this) + airTextDeviceInfo.text = deviceInfo.toString() + } - private fun initViews() { - val accentColor = ThemeStore.accentColor(this) - val primaryColor = ATHUtil.resolveColor(this, R.attr.colorSurface) - toolbar.setBackgroundColor(primaryColor) - setSupportActionBar(toolbar) - ToolbarContentTintHelper.colorBackButton(toolbar) - supportActionBar?.setDisplayHomeAsUpEnabled(true) - TintHelper.setTintAuto(optionUseAccount, accentColor, false) - optionUseAccount?.setOnClickListener { - inputTitle.isEnabled = true - inputDescription.isEnabled = true - inputUsername.isEnabled = true - inputPassword.isEnabled = true + private fun initViews() { + val accentColor = ThemeStore.accentColor(this) + val primaryColor = ATHUtil.resolveColor(this, R.attr.colorSurface) + toolbar.setBackgroundColor(primaryColor) + setSupportActionBar(toolbar) + ToolbarContentTintHelper.colorBackButton(toolbar) + supportActionBar?.setDisplayHomeAsUpEnabled(true) + TintHelper.setTintAuto(optionUseAccount, accentColor, false) + optionUseAccount?.setOnClickListener { + inputTitle.isEnabled = true + inputDescription.isEnabled = true + inputUsername.isEnabled = true + inputPassword.isEnabled = true - optionAnonymous.isChecked = false - sendFab.hide(object : FloatingActionButton.OnVisibilityChangedListener() { - override fun onHidden(fab: FloatingActionButton?) { - super.onHidden(fab) - sendFab.setImageResource(R.drawable.ic_send_white_24dp) - sendFab.show() - } - }) - } - TintHelper.setTintAuto(optionAnonymous, accentColor, false) - optionAnonymous.setOnClickListener { - inputTitle.isEnabled = false - inputDescription.isEnabled = false - inputUsername.isEnabled = false - inputPassword.isEnabled = false + optionAnonymous.isChecked = false + sendFab.hide(object : FloatingActionButton.OnVisibilityChangedListener() { + override fun onHidden(fab: FloatingActionButton?) { + super.onHidden(fab) + sendFab.setImageResource(R.drawable.ic_send_white_24dp) + sendFab.show() + } + }) + } + TintHelper.setTintAuto(optionAnonymous, accentColor, false) + optionAnonymous.setOnClickListener { + inputTitle.isEnabled = false + inputDescription.isEnabled = false + inputUsername.isEnabled = false + inputPassword.isEnabled = false - optionUseAccount.isChecked = false - sendFab.hide(object : FloatingActionButton.OnVisibilityChangedListener() { - override fun onHidden(fab: FloatingActionButton?) { - super.onHidden(fab) - sendFab.setImageResource(R.drawable.ic_open_in_browser_white_24dp) - sendFab.show() - } - }) - } + optionUseAccount.isChecked = false + sendFab.hide(object : FloatingActionButton.OnVisibilityChangedListener() { + override fun onHidden(fab: FloatingActionButton?) { + super.onHidden(fab) + sendFab.setImageResource(R.drawable.ic_open_in_browser_white_24dp) + sendFab.show() + } + }) + } - inputPassword.setOnEditorActionListener { _, actionId, _ -> - if (actionId == EditorInfo.IME_ACTION_SEND) { - reportIssue() - return@setOnEditorActionListener true - } - false - } + inputPassword.setOnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_SEND) { + reportIssue() + return@setOnEditorActionListener true + } + false + } - airTextDeviceInfo.setOnClickListener { copyDeviceInfoToClipBoard() } + airTextDeviceInfo.setOnClickListener { copyDeviceInfoToClipBoard() } - TintHelper.setTintAuto(sendFab, accentColor, true) - sendFab.setOnClickListener { reportIssue() } + TintHelper.setTintAuto(sendFab, accentColor, true) + sendFab.setOnClickListener { reportIssue() } - MaterialUtil.setTint(inputLayoutTitle, false) - MaterialUtil.setTint(inputLayoutDescription, false) - MaterialUtil.setTint(inputLayoutUsername, false) - MaterialUtil.setTint(inputLayoutPassword, false) - } + MaterialUtil.setTint(inputLayoutTitle, false) + MaterialUtil.setTint(inputLayoutDescription, false) + MaterialUtil.setTint(inputLayoutUsername, false) + MaterialUtil.setTint(inputLayoutPassword, false) + } - private fun reportIssue() { - if (optionUseAccount.isChecked) { - if (!validateInput()) return - val username = inputUsername.text.toString() - val password = inputPassword.text.toString() - sendBugReport(GithubLogin(username, password)) - } else { - copyDeviceInfoToClipBoard() + private fun reportIssue() { + if (optionUseAccount.isChecked) { + if (!validateInput()) return + val username = inputUsername.text.toString() + val password = inputPassword.text.toString() + sendBugReport(GithubLogin(username, password)) + } else { + copyDeviceInfoToClipBoard() - val i = Intent(Intent.ACTION_VIEW) - i.data = Uri.parse(ISSUE_TRACKER_LINK) - i.flags = Intent.FLAG_ACTIVITY_NEW_TASK - startActivity(i) - } - } + val i = Intent(Intent.ACTION_VIEW) + i.data = Uri.parse(ISSUE_TRACKER_LINK) + i.flags = Intent.FLAG_ACTIVITY_NEW_TASK + startActivity(i) + } + } - private fun copyDeviceInfoToClipBoard() { - val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - val clip = ClipData.newPlainText(getString(R.string.device_info), deviceInfo?.toMarkdown()) - clipboard.primaryClip = clip - Toast.makeText( - this@BugReportActivity, - R.string.copied_device_info_to_clipboard, - Toast.LENGTH_LONG - ).show() - } + private fun copyDeviceInfoToClipBoard() { + val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip = ClipData.newPlainText(getString(R.string.device_info), deviceInfo?.toMarkdown()) + clipboard.setPrimaryClip(clip) + Toast.makeText( + this@BugReportActivity, + R.string.copied_device_info_to_clipboard, + Toast.LENGTH_LONG + ).show() + } - private fun validateInput(): Boolean { - var hasErrors = false + private fun validateInput(): Boolean { + var hasErrors = false - if (optionUseAccount.isChecked) { - if (TextUtils.isEmpty(inputUsername.text)) { - setError(inputLayoutUsername, R.string.bug_report_no_username) - hasErrors = true - } else { - removeError(inputLayoutUsername) - } + if (optionUseAccount.isChecked) { + if (TextUtils.isEmpty(inputUsername.text)) { + setError(inputLayoutUsername, R.string.bug_report_no_username) + hasErrors = true + } else { + removeError(inputLayoutUsername) + } - if (TextUtils.isEmpty(inputPassword.text)) { - setError(inputLayoutPassword, R.string.bug_report_no_password) - hasErrors = true - } else { - removeError(inputLayoutPassword) - } - } + if (TextUtils.isEmpty(inputPassword.text)) { + setError(inputLayoutPassword, R.string.bug_report_no_password) + hasErrors = true + } else { + removeError(inputLayoutPassword) + } + } - if (TextUtils.isEmpty(inputTitle.text)) { - setError(inputLayoutTitle, R.string.bug_report_no_title) - hasErrors = true - } else { - removeError(inputLayoutTitle) - } + if (TextUtils.isEmpty(inputTitle.text)) { + setError(inputLayoutTitle, R.string.bug_report_no_title) + hasErrors = true + } else { + removeError(inputLayoutTitle) + } - if (TextUtils.isEmpty(inputDescription.text)) { - setError(inputLayoutDescription, R.string.bug_report_no_description) - hasErrors = true - } else { - removeError(inputLayoutDescription) - } + if (TextUtils.isEmpty(inputDescription.text)) { + setError(inputLayoutDescription, R.string.bug_report_no_description) + hasErrors = true + } else { + removeError(inputLayoutDescription) + } - return !hasErrors - } + return !hasErrors + } - private fun setError(editTextLayout: TextInputLayout, @StringRes errorRes: Int) { - editTextLayout.error = getString(errorRes) - } + private fun setError(editTextLayout: TextInputLayout, @StringRes errorRes: Int) { + editTextLayout.error = getString(errorRes) + } - private fun removeError(editTextLayout: TextInputLayout) { - editTextLayout.error = null - } + private fun removeError(editTextLayout: TextInputLayout) { + editTextLayout.error = null + } - private fun sendBugReport(login: GithubLogin) { - if (!validateInput()) return + private fun sendBugReport(login: GithubLogin) { + if (!validateInput()) return - val bugTitle = inputTitle.text.toString() - val bugDescription = inputDescription.text.toString() + val bugTitle = inputTitle.text.toString() + val bugDescription = inputDescription.text.toString() - val extraInfo = ExtraInfo() - onSaveExtraInfo() + val extraInfo = ExtraInfo() + onSaveExtraInfo() - val report = Report(bugTitle, bugDescription, deviceInfo, extraInfo) - val target = GithubTarget("h4h13", "RetroMusicPlayer") + val report = Report(bugTitle, bugDescription, deviceInfo, extraInfo) + val target = GithubTarget("h4h13", "RetroMusicPlayer") - ReportIssueAsyncTask.report(this, report, target, login) - } + ReportIssueAsyncTask.report(this, report, target, login) + } - private fun onSaveExtraInfo() {} + private fun onSaveExtraInfo() {} - override fun onOptionsItemSelected(item: MenuItem): Boolean { - if (item.itemId == android.R.id.home) { - onBackPressed() - } - return super.onOptionsItemSelected(item) - } + override fun onOptionsItemSelected(item: MenuItem): Boolean { + if (item.itemId == android.R.id.home) { + onBackPressed() + } + return super.onOptionsItemSelected(item) + } - private class ReportIssueAsyncTask private constructor( - activity: Activity, - private val report: Report, - private val target: GithubTarget, - private val login: GithubLogin - ) : DialogAsyncTask(activity) { - override fun createDialog(context: Context): Dialog { - return AlertDialog.Builder(context).show() - } + private class ReportIssueAsyncTask private constructor( + activity: Activity, + private val report: Report, + private val target: GithubTarget, + private val login: GithubLogin + ) : DialogAsyncTask(activity) { + override fun createDialog(context: Context): Dialog { + return AlertDialog.Builder(context).show() + } - @Result - override fun doInBackground(vararg params: Void): String { - val client: GitHubClient = if (login.shouldUseApiToken()) { - GitHubClient().setOAuth2Token(login.apiToken) - } else { - GitHubClient().setCredentials(login.username, login.password) - } + @Result + override fun doInBackground(vararg params: Void): String { + val client: GitHubClient = if (login.shouldUseApiToken()) { + GitHubClient().setOAuth2Token(login.apiToken) + } else { + GitHubClient().setCredentials(login.username, login.password) + } - val issue = Issue().setTitle(report.title).setBody(report.description) - try { - IssueService(client).createIssue(target.username, target.repository, issue) - return RESULT_SUCCESS - } catch (e: RequestException) { - return when (e.status) { - STATUS_BAD_CREDENTIALS -> { - if (login.shouldUseApiToken()) RESULT_INVALID_TOKEN else RESULT_BAD_CREDENTIALS - } - STATUS_ISSUES_NOT_ENABLED -> RESULT_ISSUES_NOT_ENABLED - else -> { - e.printStackTrace() - RESULT_UNKNOWN - } - } - } catch (e: IOException) { - e.printStackTrace() - return RESULT_UNKNOWN - } + val issue = Issue().setTitle(report.title).setBody(report.description) + try { + IssueService(client).createIssue(target.username, target.repository, issue) + return RESULT_SUCCESS + } catch (e: RequestException) { + return when (e.status) { + STATUS_BAD_CREDENTIALS -> { + if (login.shouldUseApiToken()) RESULT_INVALID_TOKEN else RESULT_BAD_CREDENTIALS + } + STATUS_ISSUES_NOT_ENABLED -> RESULT_ISSUES_NOT_ENABLED + else -> { + e.printStackTrace() + RESULT_UNKNOWN + } + } + } catch (e: IOException) { + e.printStackTrace() + return RESULT_UNKNOWN + } - } + } - override fun onPostExecute(@Result result: String) { - super.onPostExecute(result) + override fun onPostExecute(@Result result: String) { + super.onPostExecute(result) - val context = context ?: return + val context = context ?: return - when (result) { - RESULT_SUCCESS -> tryToFinishActivity() - RESULT_BAD_CREDENTIALS -> MaterialDialog(context).show { - title(R.string.bug_report_failed) - message(R.string.bug_report_failed_wrong_credentials) - positiveButton(android.R.string.ok) - } - RESULT_INVALID_TOKEN -> MaterialDialog(context).show { - title(R.string.bug_report_failed) - message(R.string.bug_report_failed_invalid_token) - positiveButton(android.R.string.ok) - } - RESULT_ISSUES_NOT_ENABLED -> MaterialDialog(context).show { - title(R.string.bug_report_failed) - message(R.string.bug_report_failed_issues_not_available) - positiveButton(android.R.string.ok) - } - else -> MaterialDialog(context).show { - title(R.string.bug_report_failed) - message(R.string.bug_report_failed_unknown) - positiveButton(android.R.string.ok) { tryToFinishActivity() } - onCancel { tryToFinishActivity() } - } - } - } + when (result) { + RESULT_SUCCESS -> tryToFinishActivity() + RESULT_BAD_CREDENTIALS -> MaterialDialog(context).show { + title(R.string.bug_report_failed) + message(R.string.bug_report_failed_wrong_credentials) + positiveButton(android.R.string.ok) + } + RESULT_INVALID_TOKEN -> MaterialDialog(context).show { + title(R.string.bug_report_failed) + message(R.string.bug_report_failed_invalid_token) + positiveButton(android.R.string.ok) + } + RESULT_ISSUES_NOT_ENABLED -> MaterialDialog(context).show { + title(R.string.bug_report_failed) + message(R.string.bug_report_failed_issues_not_available) + positiveButton(android.R.string.ok) + } + else -> MaterialDialog(context).show { + title(R.string.bug_report_failed) + message(R.string.bug_report_failed_unknown) + positiveButton(android.R.string.ok) { tryToFinishActivity() } + onCancel { tryToFinishActivity() } + } + } + } - private fun tryToFinishActivity() { - val context = context - if (context is Activity && !context.isFinishing) { - context.finish() - } - } + private fun tryToFinishActivity() { + val context = context + if (context is Activity && !context.isFinishing) { + context.finish() + } + } - companion object { + companion object { - fun report( - activity: Activity, - report: Report, - target: GithubTarget, - login: GithubLogin - ) { - ReportIssueAsyncTask(activity, report, target, login).execute() - } - } - } + fun report( + activity: Activity, + report: Report, + target: GithubTarget, + login: GithubLogin + ) { + ReportIssueAsyncTask(activity, report, target, login).execute() + } + } + } - companion object { + companion object { - private const val STATUS_BAD_CREDENTIALS = 401 - private const val STATUS_ISSUES_NOT_ENABLED = 410 - private const val ISSUE_TRACKER_LINK = "https://github.com/h4h13/RetroMusicPlayer" - } + private const val STATUS_BAD_CREDENTIALS = 401 + private const val STATUS_ISSUES_NOT_ENABLED = 410 + private const val ISSUE_TRACKER_LINK = "https://github.com/h4h13/RetroMusicPlayer" + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt index fc20026a..1ccba1a2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt @@ -86,7 +86,6 @@ class OptionsSheetDialogFragment : DialogFragment(), View.OnClickListener { } return super.onCreateView(inflater, container, savedInstanceState) - } companion object { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java index 29b1d4b6..2f2e84aa 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java @@ -3,6 +3,7 @@ package code.name.monkey.retromusic.fragments.mainactivity.folders; import android.app.ActivityOptions; import android.app.Dialog; import android.content.Context; +import android.content.res.ColorStateList; import android.media.MediaScannerConnection; import android.os.Bundle; import android.os.Environment; @@ -231,15 +232,14 @@ public class FoldersFragment extends AbsMainActivityFragment implements private void setUpAppbarColor() { int primaryColor = ATHUtil.INSTANCE.resolveColor(requireContext(), R.attr.colorSurface); getMainActivity().setSupportActionBar(toolbar); - toolbar.setBackgroundColor(RetroColorUtil.toolbarColor(getMainActivity())); + toolbar.setBackgroundTintList(ColorStateList.valueOf(ATHUtil.INSTANCE.resolveColor(requireContext(), R.attr.colorSurface))); toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp); toolbar.setNavigationOnClickListener(v -> { showMainMenu(OptionsSheetDialogFragment.FOLDER); }); breadCrumbs.setActivatedContentColor(ToolbarContentTintHelper.toolbarTitleColor(requireActivity(), ColorUtil.INSTANCE.darkenColor(primaryColor))); - breadCrumbs.setDeactivatedContentColor(ToolbarContentTintHelper.toolbarSubtitleColor(requireActivity(), - ColorUtil.INSTANCE.darkenColor(primaryColor))); - appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> getMainActivity().setLightStatusbar(!ATHUtil.INSTANCE.isWindowBackgroundDark(getContext()))); + breadCrumbs.setDeactivatedContentColor(ToolbarContentTintHelper.toolbarSubtitleColor(requireActivity(), ColorUtil.INSTANCE.darkenColor(primaryColor))); + appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> getMainActivity().setLightStatusbar(!ATHUtil.INSTANCE.isWindowBackgroundDark(requireContext()))); toolbar.setOnClickListener(v -> { ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(getMainActivity(), toolbarContainer, getString(R.string.transition_toolbar)); NavigationUtil.goToSearch(getMainActivity(), options); diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt index 236966f0..bc8d802e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt @@ -48,16 +48,8 @@ class PlayingNotificationImpl24 : PlayingNotification() { val song = service.currentSong val isPlaying = service.isPlaying val isFavorite = MusicUtil.isFavorite(service, song) - val playButtonResId = if (isPlaying) - R.drawable.ic_pause_white_48dp - else - R.drawable.ic_play_arrow_white_48dp - - val favoriteResId = if (isFavorite) - R.drawable.ic_favorite_white_24dp - else - R.drawable.ic_favorite_border_white_24dp - + val playButtonResId = if (isPlaying) R.drawable.ic_pause_white_48dp else R.drawable.ic_play_arrow_white_48dp + val favoriteResId = if (isFavorite) R.drawable.ic_favorite_white_24dp else R.drawable.ic_favorite_border_white_24dp val action = Intent(service, MainActivity::class.java) action.putExtra("expand", true) @@ -99,30 +91,10 @@ class PlayingNotificationImpl24 : PlayingNotification() { bitmapFinal = BitmapFactory.decodeResource(service.resources, R.drawable.default_album_art) } - - val toggleFavorite = NotificationCompat.Action(favoriteResId, - service.getString(R.string.action_toggle_favorite), - retrievePlaybackAction(TOGGLE_FAVORITE)) - - val playPauseAction = NotificationCompat.Action( - playButtonResId, - service.getString(R.string.action_play_pause), - retrievePlaybackAction(ACTION_TOGGLE_PAUSE)) - - val closeAction = NotificationCompat.Action( - R.drawable.ic_close_white_24dp, - service.getString(R.string.close_notification), - retrievePlaybackAction(ACTION_QUIT)) - - val previousAction = NotificationCompat.Action( - R.drawable.ic_skip_previous_round_white_32dp, - service.getString(R.string.action_previous), - retrievePlaybackAction(ACTION_REWIND)) - - val nextAction = NotificationCompat.Action( - R.drawable.ic_skip_next_round_white_32dp, - service.getString(R.string.action_next), - retrievePlaybackAction(ACTION_SKIP)) + val toggleFavorite = NotificationCompat.Action(favoriteResId, service.getString(R.string.action_toggle_favorite), retrievePlaybackAction(TOGGLE_FAVORITE)) + val playPauseAction = NotificationCompat.Action(playButtonResId, service.getString(R.string.action_play_pause), retrievePlaybackAction(ACTION_TOGGLE_PAUSE)) + val previousAction = NotificationCompat.Action(R.drawable.ic_skip_previous_round_white_32dp, service.getString(R.string.action_previous), retrievePlaybackAction(ACTION_REWIND)) + val nextAction = NotificationCompat.Action(R.drawable.ic_skip_next_round_white_32dp, service.getString(R.string.action_next), retrievePlaybackAction(ACTION_SKIP)) val builder = NotificationCompat.Builder(service, NOTIFICATION_CHANNEL_ID) @@ -139,7 +111,6 @@ class PlayingNotificationImpl24 : PlayingNotification() { .addAction(previousAction) .addAction(playPauseAction) .addAction(nextAction) - .addAction(closeAction) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { builder.setStyle(MediaStyle() diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt index 1945ee0e..b1e2185b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt @@ -114,7 +114,7 @@ class PlayingNotificationOreo : PlayingNotification() { override fun onLoadFailed(e: Exception?, errorDrawable: Drawable?) { super.onLoadFailed(e, errorDrawable) - update(null, ATHUtil.resolveColor(service, R.attr.colorPrimary, Color.WHITE)) + update(null, ATHUtil.resolveColor(service, R.attr.colorSurface, Color.WHITE)) } private fun update(bitmap: Bitmap?, bgColor: Int) { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java index 3de74e1f..428c0efe 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java +++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java @@ -657,9 +657,7 @@ public final class PreferenceUtil { } public void saveProfileImage(String profileImagePath) { - mPreferences.edit().putString(PROFILE_IMAGE_PATH, profileImagePath) - .apply(); - + mPreferences.edit().putString(PROFILE_IMAGE_PATH, profileImagePath).apply(); } public String getProfileImage() { diff --git a/app/src/main/java/code/name/monkey/retromusic/views/OptionMenuItemView.java b/app/src/main/java/code/name/monkey/retromusic/views/OptionMenuItemView.java index 1d6f37c1..1668d12a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/OptionMenuItemView.java +++ b/app/src/main/java/code/name/monkey/retromusic/views/OptionMenuItemView.java @@ -54,9 +54,6 @@ public class OptionMenuItemView extends FrameLayout { public OptionMenuItemView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - int accentColor = ThemeStore.Companion.accentColor(context); - int colorWithAlpha = ColorUtil.INSTANCE.adjustAlpha(accentColor, 0.22f); - setBackground(ContextCompat.getDrawable(context, R.drawable.option_menu_background)); setClickable(true); diff --git a/app/src/main/res/layout/item_album_card.xml b/app/src/main/res/layout/item_album_card.xml index 2c593af6..537ee4b4 100644 --- a/app/src/main/res/layout/item_album_card.xml +++ b/app/src/main/res/layout/item_album_card.xml @@ -29,7 +29,6 @@ android:ellipsize="end" android:maxLines="1" android:paddingStart="12dp" - android:paddingTop="6dp" android:paddingEnd="8dp" android:paddingBottom="4dp" android:textAppearance="@style/TextViewNormal" diff --git a/app/src/main/res/layout/item_contributor.xml b/app/src/main/res/layout/item_contributor.xml index 519826ae..597fb67b 100644 --- a/app/src/main/res/layout/item_contributor.xml +++ b/app/src/main/res/layout/item_contributor.xml @@ -17,11 +17,12 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/rectSelector" + android:background="?selectableItemBackground" android:gravity="center_vertical" - android:minHeight="72dp" + android:minHeight="64dp" android:orientation="horizontal" - android:padding="12dp" + android:paddingStart="12dp" + android:paddingEnd="12dp" tools:ignore="PrivateResource"> + tools:text="@tools:sample/lorem" /> + android:textColor="?android:attr/textColorSecondary" + tools:text="@tools:sample/lorem" /> diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml index 358d488b..d1f2226a 100755 --- a/app/src/main/res/layout/item_list.xml +++ b/app/src/main/res/layout/item_list.xml @@ -4,7 +4,10 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="4dp" + android:layout_marginStart="4dp" + android:layout_marginTop="2dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="2dp" android:clickable="true" android:focusable="true" android:foreground="?rectSelector" diff --git a/app/src/main/res/layout/item_option_menu.xml b/app/src/main/res/layout/item_option_menu.xml index 3d471c96..6d21f31b 100644 --- a/app/src/main/res/layout/item_option_menu.xml +++ b/app/src/main/res/layout/item_option_menu.xml @@ -30,7 +30,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" - android:padding="14dp" + android:padding="12dp" app:tint="?attr/colorControlNormal" tools:srcCompat="@drawable/ic_folder_white_24dp" /> diff --git a/app/src/main/res/layout/layout_notification_expanded.xml b/app/src/main/res/layout/layout_notification_expanded.xml index 79d18062..92783af3 100644 --- a/app/src/main/res/layout/layout_notification_expanded.xml +++ b/app/src/main/res/layout/layout_notification_expanded.xml @@ -16,6 +16,7 @@ android:id="@+id/largeIcon" android:layout_width="@dimen/notification_big_image_size" android:layout_height="@dimen/notification_big_image_size" + android:forceDarkAllowed="false" android:layout_alignParentEnd="true" android:scaleType="centerCrop" tools:src="@tools:sample/avatars" /> diff --git a/app/src/main/res/layout/list_item_view.xml b/app/src/main/res/layout/list_item_view.xml index 8f44627e..7459be7b 100644 --- a/app/src/main/res/layout/list_item_view.xml +++ b/app/src/main/res/layout/list_item_view.xml @@ -17,7 +17,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/rectSelector" + android:background="?selectableItemBackground" android:minHeight="72dp" android:orientation="horizontal" android:padding="16dp" diff --git a/app/src/main/res/values-night-v27/styles.xml b/app/src/main/res/values-night-v27/styles.xml new file mode 100644 index 00000000..130a8f37 --- /dev/null +++ b/app/src/main/res/values-night-v27/styles.xml @@ -0,0 +1,37 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index af453f29..f2672d6f 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -31,5 +31,6 @@ @drawable/round_selector @drawable/rect_selector @style/Widget.ActionButton.Overflow + false \ No newline at end of file diff --git a/app/src/main/res/values-v27/styles_parents.xml b/app/src/main/res/values-v27/styles_parents.xml new file mode 100644 index 00000000..a73fb3a9 --- /dev/null +++ b/app/src/main/res/values-v27/styles_parents.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles_parents.xml b/app/src/main/res/values/styles_parents.xml index 9862c2ec..c2c7bdd4 100644 --- a/app/src/main/res/values/styles_parents.xml +++ b/app/src/main/res/values/styles_parents.xml @@ -29,15 +29,16 @@ true @font/circular true + @style/ThemeOverlay.AppCompat.Dark @style/ThemeOverlay.AppCompat.Dark @drawable/round_selector_dark @drawable/rect_selector_dark - @style/ThemeOverlay.AppCompat @style/Widget.ActionButton.Overflow @style/PreferenceThemeOverlay.v14.Material false @style/MaterialAlertDialogTheme @style/MaterialButtonTheme + diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java index df57fb0f..5fb476c9 100755 --- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java +++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java @@ -199,18 +199,24 @@ public final class ToolbarContentTintHelper { } public static void setToolbarContentColorBasedOnToolbarColor(@NonNull Context context, - Toolbar toolbar, int toolbarColor) { + Toolbar toolbar, + int toolbarColor) { setToolbarContentColorBasedOnToolbarColor(context, toolbar, null, toolbarColor); } public static void setToolbarContentColorBasedOnToolbarColor(@NonNull Context context, - Toolbar toolbar, @Nullable Menu menu, int toolbarColor) { + Toolbar toolbar, + @Nullable Menu menu, + int toolbarColor) { setToolbarContentColorBasedOnToolbarColor(context, toolbar, menu, toolbarColor, ThemeStore.Companion.accentColor(context)); } public static void setToolbarContentColorBasedOnToolbarColor(@NonNull Context context, - Toolbar toolbar, @Nullable Menu menu, int toolbarColor, final @ColorInt int menuWidgetColor) { + Toolbar toolbar, + @Nullable Menu menu, + int toolbarColor, + final @ColorInt int menuWidgetColor) { setToolbarContentColor(context, toolbar, menu, toolbarContentColor(context, toolbarColor), toolbarTitleColor(context, toolbarColor), toolbarSubtitleColor(context, toolbarColor), menuWidgetColor);