+ android:label="@string/settings_label"
+ android:theme="@style/AppTheme.Drawer">
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/PhoneSignInFragment.kt b/automotive/src/main/java/com/example/android/uamp/automotive/PhoneSignInFragment.kt
index 5695a64cb..257ac45e8 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/PhoneSignInFragment.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/PhoneSignInFragment.kt
@@ -38,12 +38,13 @@ class PhoneSignInFragment : Fragment() {
private lateinit var appIcon: ImageView
private lateinit var primaryTextView: TextView
private lateinit var pinSignInButton: Button
- private lateinit var qrCodeSignInButton : Button
+ private lateinit var qrCodeSignInButton: Button
private lateinit var footerTextView: TextView
override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
return inflater.inflate(R.layout.phone_sign_in, container, false)
}
@@ -68,23 +69,25 @@ class PhoneSignInFragment : Fragment() {
pinSignInButton.text = getString(R.string.pin_sign_in_button_label)
pinSignInButton.setOnClickListener {
requireActivity().supportFragmentManager.beginTransaction()
- .replace(R.id.sign_in_container, PinCodeSignInFragment())
- .addToBackStack("landingPage")
- .commit()
+ .replace(R.id.sign_in_container, PinCodeSignInFragment())
+ .addToBackStack("landingPage")
+ .commit()
}
// Set up QR code sign in button.
qrCodeSignInButton.text = getString(R.string.qr_sign_in_button_label)
qrCodeSignInButton.setOnClickListener {
requireActivity().supportFragmentManager.beginTransaction()
- .replace(R.id.sign_in_container, QrCodeSignInFragment())
- .addToBackStack("landingPage")
- .commit()
+ .replace(R.id.sign_in_container, QrCodeSignInFragment())
+ .addToBackStack("landingPage")
+ .commit()
}
// Links in footer text should be clickable.
- footerTextView.text = HtmlCompat.fromHtml(context.getString(R.string.sign_in_footer),
- HtmlCompat.FROM_HTML_MODE_LEGACY)
+ footerTextView.text = HtmlCompat.fromHtml(
+ context.getString(R.string.sign_in_footer),
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
footerTextView.movementMethod = LinkMovementMethod.getInstance()
}
}
\ No newline at end of file
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/PinCodeSignInFragment.kt b/automotive/src/main/java/com/example/android/uamp/automotive/PinCodeSignInFragment.kt
index 357ecd035..8f5dbdbeb 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/PinCodeSignInFragment.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/PinCodeSignInFragment.kt
@@ -41,12 +41,13 @@ class PinCodeSignInFragment : Fragment() {
private lateinit var appIcon: ImageView
private lateinit var primaryTextView: TextView
private lateinit var secondaryTextView: TextView
- private lateinit var pinCodeContainer : ViewGroup
+ private lateinit var pinCodeContainer: ViewGroup
private lateinit var footerTextView: TextView
override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
return inflater.inflate(R.layout.pin_sign_in, container, false)
}
@@ -70,13 +71,15 @@ class PinCodeSignInFragment : Fragment() {
secondaryTextView.text = getString(R.string.pin_sign_in_secondary_text)
// Links in footer text should be clickable.
- footerTextView.text = HtmlCompat.fromHtml(context.getString(R.string.sign_in_footer),
- HtmlCompat.FROM_HTML_MODE_LEGACY)
+ footerTextView.text = HtmlCompat.fromHtml(
+ context.getString(R.string.sign_in_footer),
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
footerTextView.movementMethod = LinkMovementMethod.getInstance()
val pin = ViewModelProviders.of(requireActivity())
- .get(SignInActivityViewModel::class.java)
- .generatePin()
+ .get(SignInActivityViewModel::class.java)
+ .generatePin()
setPin(pin)
}
@@ -93,9 +96,10 @@ class PinCodeSignInFragment : Fragment() {
for (element in pin) {
val pinItem = LayoutInflater.from(context).inflate(
- R.layout.pin_item,
- pinCodeContainer,
- false) as TextView
+ R.layout.pin_item,
+ pinCodeContainer,
+ false
+ ) as TextView
pinItem.text = element.toString()
pinCodeContainer.addView(pinItem)
}
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/QrCodeSignInFragment.kt b/automotive/src/main/java/com/example/android/uamp/automotive/QrCodeSignInFragment.kt
index 0b00ea9f4..de93f185a 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/QrCodeSignInFragment.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/QrCodeSignInFragment.kt
@@ -32,7 +32,7 @@ import com.bumptech.glide.Glide
* Fragment that is used to facilitate QR code sign-in. Users scan a QR code rendered by this
* fragment with their phones, which performs the authentication required for sign-in
*
-* This screen serves as a demo for UI best practices for QR code sign in. Sign in implementation
+ *
This screen serves as a demo for UI best practices for QR code sign in. Sign in implementation
* will be app specific and is not included.
*/
class QrCodeSignInFragment : Fragment() {
@@ -41,12 +41,13 @@ class QrCodeSignInFragment : Fragment() {
private lateinit var appIcon: ImageView
private lateinit var primaryTextView: TextView
private lateinit var secondaryTextView: TextView
- private lateinit var qrCode : ImageView
+ private lateinit var qrCode: ImageView
private lateinit var footerTextView: TextView
override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
return inflater.inflate(R.layout.qr_sign_in, container, false)
}
@@ -70,8 +71,10 @@ class QrCodeSignInFragment : Fragment() {
secondaryTextView.text = getString(R.string.qr_sign_in_secondary_text)
// Links in footer text should be clickable.
- footerTextView.text = HtmlCompat.fromHtml(context.getString(R.string.sign_in_footer),
- HtmlCompat.FROM_HTML_MODE_LEGACY)
+ footerTextView.text = HtmlCompat.fromHtml(
+ context.getString(R.string.sign_in_footer),
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
footerTextView.movementMethod = LinkMovementMethod.getInstance()
setQrCode(getString(R.string.qr_code_url))
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivity.kt b/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivity.kt
index 428136516..3faee2385 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivity.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivity.kt
@@ -31,8 +31,8 @@ class SignInActivity : AppCompatActivity() {
setContentView(R.layout.activity_sign_in)
viewModel = ViewModelProviders
- .of(this)
- .get(SignInActivityViewModel::class.java)
+ .of(this)
+ .get(SignInActivityViewModel::class.java)
viewModel.loggedIn.observe(this, Observer { loggedIn ->
if (loggedIn == true) {
@@ -42,7 +42,7 @@ class SignInActivity : AppCompatActivity() {
})
supportFragmentManager.beginTransaction()
- .add(R.id.sign_in_container, SignInLandingPageFragment())
- .commit()
+ .add(R.id.sign_in_container, SignInLandingPageFragment())
+ .commit()
}
}
\ No newline at end of file
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivityViewModel.kt b/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivityViewModel.kt
index b48722451..e9b2735b2 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivityViewModel.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/SignInActivityViewModel.kt
@@ -34,8 +34,8 @@ import java.util.Random
class SignInActivityViewModel(application: Application) : AndroidViewModel(application) {
private val applicationContext = application.applicationContext
private val musicServiceConnection = MusicServiceConnection(
- applicationContext,
- ComponentName(applicationContext, AutomotiveMusicService::class.java)
+ applicationContext,
+ ComponentName(applicationContext, AutomotiveMusicService::class.java)
)
private val _loggedIn = MutableLiveData()
@@ -44,9 +44,9 @@ class SignInActivityViewModel(application: Application) : AndroidViewModel(appli
fun login(email: String, password: String) {
if (TextUtils.isEmpty(email) or TextUtils.isEmpty(password)) {
Toast.makeText(
- applicationContext,
- applicationContext.getString(R.string.missing_fields_error),
- Toast.LENGTH_SHORT
+ applicationContext,
+ applicationContext.getString(R.string.missing_fields_error),
+ Toast.LENGTH_SHORT
).show()
} else {
val loginParams = Bundle().apply {
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/SignInLandingPageFragment.kt b/automotive/src/main/java/com/example/android/uamp/automotive/SignInLandingPageFragment.kt
index 9d1d5cc69..6cb068874 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/SignInLandingPageFragment.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/SignInLandingPageFragment.kt
@@ -68,16 +68,17 @@ class SignInLandingPageFragment : Fragment() {
private lateinit var googleSignInButton: Button
private lateinit var usernameAndPasswordSignInButton: Button
private lateinit var primaryTextView: TextView
- private lateinit var identifierContainer : TextInputLayout
- private lateinit var identifierInput : TextInputEditText
+ private lateinit var identifierContainer: TextInputLayout
+ private lateinit var identifierInput: TextInputEditText
private lateinit var footerTextView: TextView
override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
val layout = if (ENABLE_USERNAME_PASSWORD_SIGN_IN)
R.layout.sign_in_landing_page_with_username_and_password
- else R.layout.sign_in_landing_page
+ else R.layout.sign_in_landing_page
return inflater.inflate(layout, container, false)
}
@@ -109,8 +110,10 @@ class SignInLandingPageFragment : Fragment() {
primaryTextView.text = getString(R.string.sign_in_primary_text)
// Links in footer text should be clickable.
- footerTextView.text = HtmlCompat.fromHtml(context.getString(R.string.sign_in_footer),
- HtmlCompat.FROM_HTML_MODE_LEGACY)
+ footerTextView.text = HtmlCompat.fromHtml(
+ context.getString(R.string.sign_in_footer),
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
footerTextView.movementMethod = LinkMovementMethod.getInstance()
configureUsernameAndPasswordSignIn()
@@ -138,9 +141,9 @@ class SignInLandingPageFragment : Fragment() {
fragment.arguments = args
requireActivity().supportFragmentManager.beginTransaction()
- .replace(R.id.sign_in_container, fragment)
- .addToBackStack("landingPage")
- .commit()
+ .replace(R.id.sign_in_container, fragment)
+ .addToBackStack("landingPage")
+ .commit()
}
}
}
@@ -167,9 +170,9 @@ class SignInLandingPageFragment : Fragment() {
phoneSignInButton.text = getString(R.string.phone_sign_in_button_label)
phoneSignInButton.setOnClickListener {
requireActivity().supportFragmentManager.beginTransaction()
- .replace(R.id.sign_in_container, phoneSignInFragment)
- .addToBackStack("landingPage")
- .commit()
+ .replace(R.id.sign_in_container, phoneSignInFragment)
+ .addToBackStack("landingPage")
+ .commit()
}
}
@@ -186,9 +189,9 @@ class SignInLandingPageFragment : Fragment() {
}
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
- .requestIdToken(getString(R.string.server_client_id))
- .requestEmail()
- .build()
+ .requestIdToken(getString(R.string.server_client_id))
+ .requestEmail()
+ .build()
googleSignInButton.text = getString(R.string.google_sign_in_button_label)
@@ -199,13 +202,14 @@ class SignInLandingPageFragment : Fragment() {
}
}
- private fun checkPlayServices() : Boolean {
+ private fun checkPlayServices(): Boolean {
val apiAvailability = GoogleApiAvailability.getInstance();
val resultCode = apiAvailability.isGooglePlayServicesAvailable(context);
if (resultCode != ConnectionResult.SUCCESS) {
if (apiAvailability.isUserResolvableError(resultCode)) {
apiAvailability.getErrorDialog(
- activity, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST).show();
+ activity, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST
+ ).show();
}
return false;
}
@@ -232,9 +236,10 @@ class SignInLandingPageFragment : Fragment() {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information.
Toast.makeText(
- requireContext(), "Sign in failed with error code: " + e.statusCode,
- Toast.LENGTH_SHORT)
- .show()
+ requireContext(), "Sign in failed with error code: " + e.statusCode,
+ Toast.LENGTH_SHORT
+ )
+ .show()
}
}
}
\ No newline at end of file
diff --git a/automotive/src/main/java/com/example/android/uamp/automotive/UsernameAndPasswordSignInFragment.kt b/automotive/src/main/java/com/example/android/uamp/automotive/UsernameAndPasswordSignInFragment.kt
index 12b1b10e1..f2b45dda9 100644
--- a/automotive/src/main/java/com/example/android/uamp/automotive/UsernameAndPasswordSignInFragment.kt
+++ b/automotive/src/main/java/com/example/android/uamp/automotive/UsernameAndPasswordSignInFragment.kt
@@ -40,14 +40,15 @@ class UsernameAndPasswordSignInFragment : Fragment() {
private lateinit var toolbar: Toolbar
private lateinit var appIcon: ImageView
private lateinit var primaryTextView: TextView
- private lateinit var passwordContainer : TextInputLayout
- private lateinit var passwordInput : TextInputEditText
- private lateinit var submitButton : Button
+ private lateinit var passwordContainer: TextInputLayout
+ private lateinit var passwordInput: TextInputEditText
+ private lateinit var submitButton: Button
private lateinit var footerTextView: TextView
override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
return inflater.inflate(R.layout.username_and_password_sign_in, container, false)
}
@@ -75,8 +76,10 @@ class UsernameAndPasswordSignInFragment : Fragment() {
}
// Links in footer text should be clickable.
- footerTextView.text = HtmlCompat.fromHtml(context.getString(R.string.sign_in_footer),
- HtmlCompat.FROM_HTML_MODE_LEGACY)
+ footerTextView.text = HtmlCompat.fromHtml(
+ context.getString(R.string.sign_in_footer),
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
footerTextView.movementMethod = LinkMovementMethod.getInstance()
// Get user identifier from previous screen.
@@ -90,7 +93,7 @@ class UsernameAndPasswordSignInFragment : Fragment() {
private fun onSignIn(userIdentifier: CharSequence, password: CharSequence) {
ViewModelProviders.of(requireActivity())
- .get(SignInActivityViewModel::class.java)
- .login(userIdentifier.toString(), password.toString())
+ .get(SignInActivityViewModel::class.java)
+ .login(userIdentifier.toString(), password.toString())
}
}
\ No newline at end of file
diff --git a/automotive/src/main/res/color/car_text_dark.xml b/automotive/src/main/res/color/car_text_dark.xml
index 67f51856c..5763636f9 100644
--- a/automotive/src/main/res/color/car_text_dark.xml
+++ b/automotive/src/main/res/color/car_text_dark.xml
@@ -1,5 +1,4 @@
-
-
-
+
diff --git a/automotive/src/main/res/color/car_text_light.xml b/automotive/src/main/res/color/car_text_light.xml
index 103166f2c..556302eb9 100644
--- a/automotive/src/main/res/color/car_text_light.xml
+++ b/automotive/src/main/res/color/car_text_light.xml
@@ -1,5 +1,4 @@
-
-
-
-
+
+
diff --git a/automotive/src/main/res/drawable-v24/ic_launcher_foreground.xml b/automotive/src/main/res/drawable-v24/ic_launcher_foreground.xml
index d2656a545..6b48ff7f2 100644
--- a/automotive/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ b/automotive/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -1,5 +1,4 @@
-
-
-
-
-
-
+
+
diff --git a/automotive/src/main/res/drawable/google_sign_in_button_background.xml b/automotive/src/main/res/drawable/google_sign_in_button_background.xml
index 30a553379..e41509734 100644
--- a/automotive/src/main/res/drawable/google_sign_in_button_background.xml
+++ b/automotive/src/main/res/drawable/google_sign_in_button_background.xml
@@ -1,5 +1,4 @@
-
-
-
-
-
+
+
+
diff --git a/automotive/src/main/res/drawable/google_sign_in_button_logo.xml b/automotive/src/main/res/drawable/google_sign_in_button_logo.xml
index 92712caf5..e8d936bbd 100644
--- a/automotive/src/main/res/drawable/google_sign_in_button_logo.xml
+++ b/automotive/src/main/res/drawable/google_sign_in_button_logo.xml
@@ -1,5 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:viewportHeight="108">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/automotive/src/main/res/drawable/pin_background.xml b/automotive/src/main/res/drawable/pin_background.xml
index dce9cd7bc..cb38892a3 100644
--- a/automotive/src/main/res/drawable/pin_background.xml
+++ b/automotive/src/main/res/drawable/pin_background.xml
@@ -1,5 +1,4 @@
-
-
-
+ android:gravity="center"
+ android:orientation="vertical">
-
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+
\ No newline at end of file
diff --git a/automotive/src/main/res/layout/preference_category.xml b/automotive/src/main/res/layout/preference_category.xml
index d843352e9..530254b36 100644
--- a/automotive/src/main/res/layout/preference_category.xml
+++ b/automotive/src/main/res/layout/preference_category.xml
@@ -1,5 +1,4 @@
-
-
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+
\ No newline at end of file
diff --git a/automotive/src/main/res/layout/qr_sign_in.xml b/automotive/src/main/res/layout/qr_sign_in.xml
index 4e987eaef..4a237832a 100644
--- a/automotive/src/main/res/layout/qr_sign_in.xml
+++ b/automotive/src/main/res/layout/qr_sign_in.xml
@@ -1,5 +1,4 @@
-
-
-
-
+
+
\ No newline at end of file
diff --git a/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 5b50e46fb..41b989067 100644
--- a/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +1,4 @@
-
-
-
-
+
+
\ No newline at end of file
diff --git a/automotive/src/main/res/values-h1060dp/dimens.xml b/automotive/src/main/res/values-h1060dp/dimens.xml
index c8bdf1321..c28848c6c 100644
--- a/automotive/src/main/res/values-h1060dp/dimens.xml
+++ b/automotive/src/main/res/values-h1060dp/dimens.xml
@@ -1,5 +1,4 @@
-
-
-
+
+ android:layout="@layout/preference_category"
+ android:title="Account">
+ android:layout="@layout/preference"
+ android:title="Log Out" />
diff --git a/automotive/src/test/java/com/example/android/uamp/automotive/ExampleUnitTest.java b/automotive/src/test/java/com/example/android/uamp/automotive/ExampleUnitTest.java
index 64b7d95df..7391a0445 100644
--- a/automotive/src/test/java/com/example/android/uamp/automotive/ExampleUnitTest.java
+++ b/automotive/src/test/java/com/example/android/uamp/automotive/ExampleUnitTest.java
@@ -18,7 +18,7 @@
import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Example local unit test, which will execute on the development machine (host).
diff --git a/common/src/main/AndroidManifest.xml b/common/src/main/AndroidManifest.xml
index 70aa870cb..d00825859 100644
--- a/common/src/main/AndroidManifest.xml
+++ b/common/src/main/AndroidManifest.xml
@@ -1,5 +1,4 @@
-
-
-
-
+
+
diff --git a/common/src/main/res/drawable/ic_recommended.xml b/common/src/main/res/drawable/ic_recommended.xml
index 83e1f15ab..9e33422c7 100644
--- a/common/src/main/res/drawable/ic_recommended.xml
+++ b/common/src/main/res/drawable/ic_recommended.xml
@@ -13,7 +13,12 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
-
+
+
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 7097d22a7..d613b7ae2 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -1,5 +1,4 @@
-
-
-
- 19:75:b2:f1:71:77:bc:89:a5:df:f3:1f:9e:64:a6:ca:e2:81:a5:3d:c1:d1:d5:9b:1d:14:7f:e1:c8:2a:fa:00
- 70:81:1a:3e:ac:fd:2e:83:e1:8d:a9:bf:ed:e5:2d:f1:6c:e9:1f:2e:69:a4:4d:21:f1:8a:b6:69:91:13:07:71
- fd:b0:0c:43:db:de:8b:51:cb:31:2a:a8:1d:3b:5f:a1:77:13:ad:b9:4b:28:f5:98:d7:7f:8e:b8:9d:ac:ee:df
+
+
+ 19:75:b2:f1:71:77:bc:89:a5:df:f3:1f:9e:64:a6:ca:e2:81:a5:3d:c1:d1:d5:9b:1d:14:7f:e1:c8:2a:fa:00
+
+
+ 70:81:1a:3e:ac:fd:2e:83:e1:8d:a9:bf:ed:e5:2d:f1:6c:e9:1f:2e:69:a4:4d:21:f1:8a:b6:69:91:13:07:71
+
+
+ fd:b0:0c:43:db:de:8b:51:cb:31:2a:a8:1d:3b:5f:a1:77:13:ad:b9:4b:28:f5:98:d7:7f:8e:b8:9d:ac:ee:df
+
-
- 69:d0:72:16:9a:2c:6b:2f:5a:cc:59:0c:e4:33:a1:1a:c3:df:55:1a:df:ee:5d:5f:63:c0:83:b7:22:76:2e:19
- 85:cd:59:73:54:1b:e6:f4:77:d8:47:a0:bc:c6:aa:25:27:68:4b:81:9c:d5:96:85:29:66:4c:b0:71:57:b6:fe
+
+
+ 69:d0:72:16:9a:2c:6b:2f:5a:cc:59:0c:e4:33:a1:1a:c3:df:55:1a:df:ee:5d:5f:63:c0:83:b7:22:76:2e:19
+
+
+ 85:cd:59:73:54:1b:e6:f4:77:d8:47:a0:bc:c6:aa:25:27:68:4b:81:9c:d5:96:85:29:66:4c:b0:71:57:b6:fe
+
-
- 19:75:b2:f1:71:77:bc:89:a5:df:f3:1f:9e:64:a6:ca:e2:81:a5:3d:c1:d1:d5:9b:1d:14:7f:e1:c8:2a:fa:00
+
+
+ 19:75:b2:f1:71:77:bc:89:a5:df:f3:1f:9e:64:a6:ca:e2:81:a5:3d:c1:d1:d5:9b:1d:14:7f:e1:c8:2a:fa:00
+
-
- 19:75:b2:f1:71:77:bc:89:a5:df:f3:1f:9e:64:a6:ca:e2:81:a5:3d:c1:d1:d5:9b:1d:14:7f:e1:c8:2a:fa:00
- f0:fd:6c:5b:41:0f:25:cb:25:c3:b5:33:46:c8:97:2f:ae:30:f8:ee:74:11:df:91:04:80:ad:6b:2d:60:db:83
+
+
+ 19:75:b2:f1:71:77:bc:89:a5:df:f3:1f:9e:64:a6:ca:e2:81:a5:3d:c1:d1:d5:9b:1d:14:7f:e1:c8:2a:fa:00
+
+
+ f0:fd:6c:5b:41:0f:25:cb:25:c3:b5:33:46:c8:97:2f:ae:30:f8:ee:74:11:df:91:04:80:ad:6b:2d:60:db:83
+
-
- 17:E2:81:11:06:2F:97:A8:60:79:7A:83:70:5B:F8:2C:7C:C0:29:35:56:6D:46:22:BC:4E:CF:EE:1B:EB:F8:15
- 74:B6:FB:F7:10:E8:D9:0D:44:D3:40:12:58:89:B4:23:06:A6:2C:43:79:D0:E5:A6:62:20:E3:A6:8A:BF:90:E2
+
+
+ 17:E2:81:11:06:2F:97:A8:60:79:7A:83:70:5B:F8:2C:7C:C0:29:35:56:6D:46:22:BC:4E:CF:EE:1B:EB:F8:15
+
+
+ 74:B6:FB:F7:10:E8:D9:0D:44:D3:40:12:58:89:B4:23:06:A6:2C:43:79:D0:E5:A6:62:20:E3:A6:8A:BF:90:E2
+
diff --git a/common/src/test/java/com/example/android/uamp/media/library/MusicSourceTest.kt b/common/src/test/java/com/example/android/uamp/media/library/MusicSourceTest.kt
index d716c3062..563812e3f 100644
--- a/common/src/test/java/com/example/android/uamp/media/library/MusicSourceTest.kt
+++ b/common/src/test/java/com/example/android/uamp/media/library/MusicSourceTest.kt
@@ -39,21 +39,21 @@ import org.robolectric.RobolectricTestRunner
class MusicSourceTest {
private val musicList = listOf(
- MediaMetadataCompat.Builder().apply {
- id = "ich_hasse_dich"
- title = "Ich hasse dich"
- album = "Speechless"
- artist = "Jemand"
- genre = "Folk"
- }.build(),
-
- MediaMetadataCompat.Builder().apply {
- id = "about_a_guy"
- title = "About a Guy"
- album = "Tales from the Render Farm"
- artist = "7 Developers and a Pastry Chef"
- genre = "Rock"
- }.build()
+ MediaMetadataCompat.Builder().apply {
+ id = "ich_hasse_dich"
+ title = "Ich hasse dich"
+ album = "Speechless"
+ artist = "Jemand"
+ genre = "Folk"
+ }.build(),
+
+ MediaMetadataCompat.Builder().apply {
+ id = "about_a_guy"
+ title = "About a Guy"
+ album = "Tales from the Render Farm"
+ artist = "7 Developers and a Pastry Chef"
+ genre = "Rock"
+ }.build()
)
/** Variables for testing [MusicSource.whenReady] */
@@ -148,7 +148,8 @@ class MusicSourceTest {
}
}
-class TestMusicSource(private val music: List
+class TestMusicSource(
+ private val music: List
) : AbstractMusicSource(), Iterable by music {
override suspend fun load() = Unit
diff --git a/gradle.properties b/gradle.properties
index 1e4e18d4e..5f4669377 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -13,25 +13,19 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-
# Project-wide Gradle settings.
-
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
-
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
-
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536m
-
# Required by Robolectric.
android.enableUnitTestBinaryResources=true
-
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects