From d08ad6171e61b24662b289decfc385cc9307033f Mon Sep 17 00:00:00 2001 From: Tommaso Berlose Date: Fri, 8 May 2020 18:55:08 +0200 Subject: [PATCH] Change music fragment to at a glance --- .idea/caches/build_file_checksums.ser | Bin 595 -> 595 bytes app/build.gradle | 4 +- .../ui/adapters/ViewPagerAdapter.kt | 2 +- ...TabFragment.kt => AtAGlanceTabFragment.kt} | 99 +++++++++++------- .../ui/fragments/ClockTabFragment.kt | 49 --------- .../ui/fragments/MainFragment.kt | 2 +- ....xml => fragment_at_a_glance_settings.xml} | 71 ++++++------- .../res/layout/fragment_clock_settings.xml | 45 -------- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + .../debug/bundle-manifest/AndroidManifest.xml | 4 +- .../tmp/debug/dex-renamer-state.txt | 2 +- .../tmp/debug/zip-cache/androidResources | Bin 147 -> 147 bytes .../debug/AndroidManifest.xml | 4 +- .../manifest-merger-blame-debug-report.txt | 4 +- .../debug/AndroidManifest.xml | 4 +- .../metadata-feature/AndroidManifest.xml | 4 +- 19 files changed, 113 insertions(+), 185 deletions(-) rename app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/{MusicTabFragment.kt => AtAGlanceTabFragment.kt} (53%) rename app/src/main/res/layout/{fragment_music_settings.xml => fragment_at_a_glance_settings.xml} (68%) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 214f91c786148884230485d5d5d92298f2de5161..0ea2cb064df689c431e1b27625a91e23a8d4eadb 100644 GIT binary patch delta 33 rcmV++0N(%81k(hNm<06r1zWM4rU4OJB=c@#f6CR$eUwG$wWeNp4$Kh6 delta 33 pcmcc2a+zhq43^IU*#|eyS;i6 diff --git a/app/build.gradle b/app/build.gradle index 66cd1b5..cb12d3d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ android { applicationId "com.tommasoberlose.anotherwidget" minSdkVersion 23 targetSdkVersion 29 - versionCode 78 - versionName "2.0.5" + versionCode 80 + versionName "2.0.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/adapters/ViewPagerAdapter.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/adapters/ViewPagerAdapter.kt index 2d58cae..7f40ae6 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/adapters/ViewPagerAdapter.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/adapters/ViewPagerAdapter.kt @@ -15,7 +15,7 @@ class ViewPagerAdapter(fragmentActivity: FragmentActivity) : 1 -> CalendarTabFragment.newInstance() 2 -> WeatherTabFragment.newInstance() 3 -> ClockTabFragment.newInstance() - 4 -> MusicTabFragment.newInstance() + 4 -> AtAGlanceTabFragment.newInstance() else -> GeneralTabFragment.newInstance() } } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MusicTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/AtAGlanceTabFragment.kt similarity index 53% rename from app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MusicTabFragment.kt rename to app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/AtAGlanceTabFragment.kt index ec92480..1f7edd8 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MusicTabFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/AtAGlanceTabFragment.kt @@ -1,52 +1,40 @@ package com.tommasoberlose.anotherwidget.ui.fragments -import android.Manifest -import android.app.Activity +import android.app.AlarmManager +import android.content.BroadcastReceiver +import android.content.Context import android.content.Intent -import android.os.Build +import android.content.IntentFilter +import android.content.pm.PackageManager import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.app.NotificationManagerCompat -import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope -import com.chibatching.kotpref.bulk -import com.karumi.dexter.Dexter -import com.karumi.dexter.MultiplePermissionsReport -import com.karumi.dexter.PermissionToken -import com.karumi.dexter.listener.PermissionRequest -import com.karumi.dexter.listener.multi.MultiplePermissionsListener import com.tommasoberlose.anotherwidget.R import com.tommasoberlose.anotherwidget.components.BottomSheetMenu -import com.tommasoberlose.anotherwidget.databinding.FragmentMusicSettingsBinding -import com.tommasoberlose.anotherwidget.databinding.FragmentWeatherSettingsBinding -import com.tommasoberlose.anotherwidget.global.Constants +import com.tommasoberlose.anotherwidget.databinding.FragmentAtAGlanceSettingsBinding import com.tommasoberlose.anotherwidget.global.Preferences -import com.tommasoberlose.anotherwidget.global.RequestCode +import com.tommasoberlose.anotherwidget.helpers.AlarmHelper import com.tommasoberlose.anotherwidget.helpers.MediaPlayerHelper -import com.tommasoberlose.anotherwidget.helpers.SettingsStringHelper -import com.tommasoberlose.anotherwidget.receivers.WeatherReceiver -import com.tommasoberlose.anotherwidget.ui.activities.ChooseApplicationActivity -import com.tommasoberlose.anotherwidget.ui.activities.CustomLocationActivity import com.tommasoberlose.anotherwidget.ui.activities.MainActivity -import com.tommasoberlose.anotherwidget.ui.activities.WeatherProviderActivity import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel -import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget -import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission -import kotlinx.android.synthetic.main.fragment_music_settings.* +import kotlinx.android.synthetic.main.fragment_at_a_glance_settings.* +import kotlinx.android.synthetic.main.fragment_at_a_glance_settings.scrollView import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import java.lang.Exception -class MusicTabFragment : Fragment() { +class AtAGlanceTabFragment : Fragment() { companion object { - fun newInstance() = MusicTabFragment() + fun newInstance() = AtAGlanceTabFragment() } private lateinit var viewModel: MainViewModel @@ -61,7 +49,7 @@ class MusicTabFragment : Fragment() { ): View { viewModel = ViewModelProvider(activity as MainActivity).get(MainViewModel::class.java) - val binding = DataBindingUtil.inflate(inflater, R.layout.fragment_music_settings, container, false) + val binding = DataBindingUtil.inflate(inflater, R.layout.fragment_at_a_glance_settings, container, false) subscribeUi(binding, viewModel) @@ -75,23 +63,20 @@ class MusicTabFragment : Fragment() { super.onActivityCreated(savedInstanceState) setupListener() + updateNextAlarmWarningUi() } private fun subscribeUi( - binding: FragmentMusicSettingsBinding, + binding: FragmentAtAGlanceSettingsBinding, viewModel: MainViewModel ) { viewModel.showMusic.observe(viewLifecycleOwner, Observer { - binding.isMusicVisible = Preferences.showMusic checkNotificationPermission() }) - viewModel.mediaInfoFormat.observe(viewLifecycleOwner, Observer { - maintainScrollPosition { - label_music_info_format?.text = - if (it != "") it else getString(R.string.default_weather_app) - } + viewModel.showNextAlarm.observe(viewLifecycleOwner, Observer { + updateNextAlarmWarningUi() }) } @@ -100,17 +85,53 @@ class MusicTabFragment : Fragment() { Preferences.showMusic = !Preferences.showMusic } - action_music_info_format.setOnClickListener { - if (Preferences.showMusic) { -// startActivityForResult( -// Intent(requireContext(), WeatherProviderActivity::class.java), -// RequestCode.WEATHER_PROVIDER_REQUEST_CODE.code -// ) - } + action_show_next_alarm.setOnClickListener { + BottomSheetMenu(requireContext(), header = getString(R.string.settings_show_next_alarm_title)).setSelectedValue(Preferences.showNextAlarm) + .addItem(getString(R.string.settings_visible), true) + .addItem(getString(R.string.settings_not_visible), false) + .addOnSelectItemListener { value -> + Preferences.showNextAlarm = value + }.show() } } + private fun updateNextAlarmWarningUi() { + with(requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManager) { + val alarm = nextAlarmClock + if (AlarmHelper.isAlarmProbablyWrong(requireContext()) && alarm != null && alarm.showIntent != null) { + val pm = requireContext().packageManager as PackageManager + val appNameOrPackage = try { + pm.getApplicationLabel(pm.getApplicationInfo(alarm.showIntent?.creatorPackage ?: "", 0)) + } catch (e: Exception) { + alarm.showIntent?.creatorPackage ?: "" + } + show_next_alarm_warning.text = getString(R.string.next_alarm_warning).format(appNameOrPackage) + } else { + maintainScrollPosition { + show_next_alarm_label?.text = if (Preferences.showNextAlarm) getString(R.string.settings_visible) else getString( + R.string.settings_not_visible) + } + } + } + } + + private val nextAlarmChangeBroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + updateNextAlarmWarningUi() + } + } + + override fun onStart() { + super.onStart() + activity?.registerReceiver(nextAlarmChangeBroadcastReceiver, IntentFilter(AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED)) + } + + override fun onStop() { + activity?.unregisterReceiver(nextAlarmChangeBroadcastReceiver) + super.onStop() + } + private fun checkNotificationPermission() { if (NotificationManagerCompat.getEnabledListenerPackages(requireContext()).contains(requireContext().packageName)) { notification_permission_alert?.isVisible = false diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/ClockTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/ClockTabFragment.kt index 6c16cad..542f2e7 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/ClockTabFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/ClockTabFragment.kt @@ -79,7 +79,6 @@ class ClockTabFragment : Fragment() { } } setupListener() - updateNextAlarmWarningUi() } private fun subscribeUi( @@ -138,10 +137,6 @@ class ClockTabFragment : Fragment() { } }) - viewModel.showNextAlarm.observe(viewLifecycleOwner, Observer { - updateNextAlarmWarningUi() - }) - viewModel.clockAppName.observe(viewLifecycleOwner, Observer { maintainScrollPosition { clock_app_label?.text = @@ -204,50 +199,6 @@ class ClockTabFragment : Fragment() { ) } } - - action_show_next_alarm.setOnClickListener { - BottomSheetMenu(requireContext(), header = getString(R.string.settings_show_next_alarm_title)).setSelectedValue(Preferences.showNextAlarm) - .addItem(getString(R.string.settings_visible), true) - .addItem(getString(R.string.settings_not_visible), false) - .addOnSelectItemListener { value -> - Preferences.showNextAlarm = value - }.show() - } - } - - private fun updateNextAlarmWarningUi() { - with(requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManager) { - val alarm = nextAlarmClock - if (AlarmHelper.isAlarmProbablyWrong(requireContext()) && alarm != null && alarm.showIntent != null) { - val pm = requireContext().packageManager as PackageManager - val appNameOrPackage = try { - pm.getApplicationLabel(pm.getApplicationInfo(alarm.showIntent?.creatorPackage ?: "", 0)) - } catch (e: Exception) { - alarm.showIntent?.creatorPackage ?: "" - } - show_next_alarm_warning.text = getString(R.string.next_alarm_warning).format(appNameOrPackage) - } else { - maintainScrollPosition { - show_next_alarm_label?.text = if (Preferences.showNextAlarm) getString(R.string.settings_visible) else getString(R.string.settings_not_visible) - } - } - } - } - - private val nextAlarmChangeBroadcastReceiver = object : BroadcastReceiver() { - override fun onReceive(context: Context?, intent: Intent?) { - updateNextAlarmWarningUi() - } - } - - override fun onStart() { - super.onStart() - activity?.registerReceiver(nextAlarmChangeBroadcastReceiver, IntentFilter(AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED)) - } - - override fun onStop() { - activity?.unregisterReceiver(nextAlarmChangeBroadcastReceiver) - super.onStop() } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt index bf1daf9..05670cb 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt @@ -85,7 +85,7 @@ class MainFragment : Fragment(), SharedPreferences.OnSharedPreferenceChangeList 1 -> getString(R.string.settings_calendar_title) 2 -> getString(R.string.settings_weather_title) 3 -> getString(R.string.settings_clock_title) - 4 -> getString(R.string.settings_music_title) + 4 -> getString(R.string.settings_at_a_glance_title) else -> "" } }.attach() diff --git a/app/src/main/res/layout/fragment_music_settings.xml b/app/src/main/res/layout/fragment_at_a_glance_settings.xml similarity index 68% rename from app/src/main/res/layout/fragment_music_settings.xml rename to app/src/main/res/layout/fragment_at_a_glance_settings.xml index 7f04ce9..41c4506 100644 --- a/app/src/main/res/layout/fragment_music_settings.xml +++ b/app/src/main/res/layout/fragment_at_a_glance_settings.xml @@ -4,9 +4,6 @@ - + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:paddingLeft="8dp" + android:paddingRight="8dp" + android:clickable="true" + android:focusable="true" + android:background="?android:attr/selectableItemBackground" + android:gravity="center_vertical" + android:id="@+id/action_show_next_alarm" + android:orientation="horizontal"> + - - + - - - + style="@style/AnotherWidget.Settings.Title" + android:text="@string/settings_show_next_alarm_title"/> + + diff --git a/app/src/main/res/layout/fragment_clock_settings.xml b/app/src/main/res/layout/fragment_clock_settings.xml index 51591c0..681c608 100644 --- a/app/src/main/res/layout/fragment_clock_settings.xml +++ b/app/src/main/res/layout/fragment_clock_settings.xml @@ -253,51 +253,6 @@ - - - - - - - - Playing song info hidden Song info format We need the notification access permission to check the current playing song. + At a Glance \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f2fe738..26cf78d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -194,4 +194,5 @@ Playing song info hidden Song info format We need the notification access permission to check the current playing song. + At a Glance \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 56a1e42..aeb2b07 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -193,4 +193,5 @@ Non visibile Formato informazioni brano Concedi all\'app il permesso di monitorare le notifiche, รจ necessario per poter mostrare il brano in riproduzione. + At a Glance \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fbf8579..d3c8b97 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -199,6 +199,7 @@ The next alarm clock seems to be wrong.\nIt has been set by %s. Settings Clock text color + At a Glance Music Show current playing song Playing song info visible diff --git a/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml b/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml index 49ff4c4..39df5fb 100644 --- a/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml +++ b/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:dist="http://schemas.android.com/apk/distribution" featureSplit="tasksintegration" package="com.tommasoberlose.anotherwidget" - android:versionCode="78" - android:versionName="2.0.5" > + android:versionCode="80" + android:versionName="2.0.6" > + android:versionCode="80" + android:versionName="2.0.6" > +6 android:versionCode="80" +7 android:versionName="2.0.6" > 8 9 + android:versionCode="80" + android:versionName="2.0.6" > + android:versionCode="80" + android:versionName="2.0.6" >