diff --git a/.gitignore b/.gitignore
index 29220b5..4354eb8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@
/build
/captures
.externalNativeBuild
-/tasksintegration/build
\ No newline at end of file
+/tasksintegration/build
+apikey.properties
\ No newline at end of file
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index f40dd01..23f9474 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 791dac0..de6ffd8 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -11,6 +11,7 @@
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 3a35afd..f13a860 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -4,6 +4,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index cb12d3d..dc7a955 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -53,7 +53,9 @@ android {
viewBinding.enabled = true
- dynamicFeatures = [":tasksintegration"]
+ dynamicFeatures = [":tasksintegration", ":googlefit"]
+
+
}
dependencies {
@@ -110,9 +112,6 @@ dependencies {
implementation "androidx.palette:palette-ktx:1.0.0"
implementation 'androidx.core:core-ktx:1.2.0'
- // Recommended: Add the Firebase SDK for Google Analytics.
- implementation 'com.google.firebase:firebase-analytics:17.4.0'
-
// Add the Firebase SDK for Crashlytics.
implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 95c24f6..9bfda14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,6 +33,7 @@
+
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt
index 48ddf16..c43bf5f 100755
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt
@@ -80,4 +80,7 @@ object Preferences : KotprefModel() {
var mediaPlayerAlbum by stringPref(default = "")
var mediaPlayerArtist by stringPref(default = "")
var mediaPlayerPackage by stringPref(default = "")
+
+ // Integrations
+ var installedIntegrations by intPref(default = 0)
}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt
index ef83b94..2d64cbf 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt
@@ -39,7 +39,6 @@ object SettingsStringHelper {
return when (info) {
0 -> R.string.settings_second_row_info_subtitle_0
1 -> R.string.settings_second_row_info_subtitle_1
- 2 -> R.string.settings_second_row_info_subtitle_2
else -> R.string.settings_second_row_info_subtitle_0
}
}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/IntegrationsActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/IntegrationsActivity.kt
new file mode 100644
index 0000000..06d04a8
--- /dev/null
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/IntegrationsActivity.kt
@@ -0,0 +1,52 @@
+package com.tommasoberlose.anotherwidget.ui.activities
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.databinding.DataBindingUtil
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.tommasoberlose.anotherwidget.R
+import com.tommasoberlose.anotherwidget.databinding.ActivityIntegrationsBinding
+import com.tommasoberlose.anotherwidget.ui.viewmodels.IntegrationsViewModel
+import kotlinx.android.synthetic.main.activity_integrations.*
+import net.idik.lib.slimadapter.SlimAdapter
+
+class IntegrationsActivity : AppCompatActivity() {
+
+ private lateinit var adapter: SlimAdapter
+ private lateinit var viewModel: IntegrationsViewModel
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ viewModel = ViewModelProvider(this).get(IntegrationsViewModel::class.java)
+ val binding = DataBindingUtil.setContentView(this, R.layout.activity_integrations)
+
+ list_view.setHasFixedSize(true)
+ val mLayoutManager = LinearLayoutManager(this)
+ list_view.layoutManager = mLayoutManager
+
+ adapter = SlimAdapter.create()
+ adapter
+ .register(R.layout.application_info_layout) { _, injector ->
+ injector
+ .text(R.id.text, getString(R.string.default_name))
+
+ }
+ .attachTo(list_view)
+
+ setupListener()
+ subscribeUi(binding, viewModel)
+ }
+
+ private fun subscribeUi(binding: ActivityIntegrationsBinding, viewModel: IntegrationsViewModel) {
+ binding.viewModel = viewModel
+
+ }
+
+ private fun setupListener() {
+ action_back.setOnClickListener {
+ onBackPressed()
+ }
+ }
+}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarTabFragment.kt
index c29dabe..d9896bc 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarTabFragment.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarTabFragment.kt
@@ -270,7 +270,7 @@ class CalendarTabFragment : Fragment() {
action_show_until.setOnClickListener {
if (Preferences.showEvents) {
val dialog = BottomSheetMenu(requireContext(), header = getString(R.string.settings_show_until_title)).setSelectedValue(Preferences.showUntil)
- intArrayOf(6,7,0,1,2,3,4,5).forEach {
+ intArrayOf(6,7,0,1,2).forEach {
dialog.addItem(getString(SettingsStringHelper.getShowUntilString(it)), it)
}
dialog.addOnSelectItemListener { value ->
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt
index 2123691..1c4ee8d 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/SettingsFragment.kt
@@ -32,6 +32,7 @@ import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
import com.tommasoberlose.anotherwidget.helpers.CalendarHelper
import com.tommasoberlose.anotherwidget.helpers.MediaPlayerHelper
import com.tommasoberlose.anotherwidget.helpers.WeatherHelper
+import com.tommasoberlose.anotherwidget.ui.activities.IntegrationsActivity
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
import com.tommasoberlose.anotherwidget.utils.openURI
import kotlinx.android.synthetic.main.fragment_advanced_settings.*
@@ -97,6 +98,10 @@ class SettingsFragment : Fragment() {
}
})
+ viewModel.installedIntegrations.observe(viewLifecycleOwner, Observer {
+ integrations_count_label?.text = getString(R.string.label_count_installed_integrations).format(it)
+ })
+
viewModel.showPreview.observe(viewLifecycleOwner, Observer {
maintainScrollPosition {
show_widget_preview_label?.text =
@@ -115,27 +120,6 @@ class SettingsFragment : Fragment() {
}
private fun setupListener() {
- action_change_theme.setOnClickListener {
- maintainScrollPosition {
- BottomSheetMenu(requireContext(), header = getString(R.string.settings_theme_title))
- .setSelectedValue(Preferences.darkThemePreference)
- .addItem(
- getString(R.string.settings_subtitle_dark_theme_light),
- AppCompatDelegate.MODE_NIGHT_NO
- )
- .addItem(
- getString(R.string.settings_subtitle_dark_theme_dark),
- AppCompatDelegate.MODE_NIGHT_YES
- )
- .addItem(
- getString(R.string.settings_subtitle_dark_theme_default),
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM else AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY
- )
- .addOnSelectItemListener { value ->
- Preferences.darkThemePreference = value
- }.show()
- }
- }
action_show_widget_preview.setOnClickListener {
maintainScrollPosition {
@@ -177,6 +161,32 @@ class SettingsFragment : Fragment() {
}
}
+ action_integrations.setOnClickListener {
+ startActivity(Intent(requireContext(), IntegrationsActivity::class.java))
+ }
+
+ action_change_theme.setOnClickListener {
+ maintainScrollPosition {
+ BottomSheetMenu(requireContext(), header = getString(R.string.settings_theme_title))
+ .setSelectedValue(Preferences.darkThemePreference)
+ .addItem(
+ getString(R.string.settings_subtitle_dark_theme_light),
+ AppCompatDelegate.MODE_NIGHT_NO
+ )
+ .addItem(
+ getString(R.string.settings_subtitle_dark_theme_dark),
+ AppCompatDelegate.MODE_NIGHT_YES
+ )
+ .addItem(
+ getString(R.string.settings_subtitle_dark_theme_default),
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM else AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY
+ )
+ .addOnSelectItemListener { value ->
+ Preferences.darkThemePreference = value
+ }.show()
+ }
+ }
+
action_translate.setOnClickListener {
activity?.openURI("https://github.com/tommasoberlose/another-widget/blob/master/app/src/main/res/values/strings.xml")
}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/IntegrationsViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/IntegrationsViewModel.kt
new file mode 100644
index 0000000..73cfc0c
--- /dev/null
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/IntegrationsViewModel.kt
@@ -0,0 +1,7 @@
+package com.tommasoberlose.anotherwidget.ui.viewmodels
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+
+class IntegrationsViewModel(application: Application) : AndroidViewModel(application) {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt
index 8137797..17fb9ef 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt
@@ -60,4 +60,5 @@ class MainViewModel : ViewModel() {
val darkThemePreference = Preferences.asLiveData(Preferences::darkThemePreference)
val showWallpaper = Preferences.asLiveData(Preferences::showWallpaper)
val showPreview = Preferences.asLiveData(Preferences::showPreview)
+ val installedIntegrations = Preferences.asLiveData(Preferences::installedIntegrations)
}
diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt
index c1a76f0..ca940b8 100644
--- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt
+++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt
@@ -261,14 +261,14 @@ class MainWidget : AppWidgetProvider() {
views.setViewVisibility(R.id.empty_layout_rect, View.GONE)
views.setViewVisibility(R.id.calendar_layout_rect, View.VISIBLE)
- } else if (Preferences.showNextAlarm && nextAlarm != "") {
- val alarmIntent = PendingIntent.getActivity(
+ } else if (MediaPlayerHelper.isSomeonePlaying(context)) {
+ val musicIntent = PendingIntent.getActivity(
context,
widgetID,
- IntentHelper.getClockIntent(context),
+ IntentHelper.getMusicIntent(context),
0
)
- views.setOnClickPendingIntent(R.id.second_row_rect, alarmIntent)
+ views.setOnClickPendingIntent(R.id.second_row_rect, musicIntent)
views.setImageViewBitmap(
R.id.next_event_rect,
@@ -284,14 +284,14 @@ class MainWidget : AppWidgetProvider() {
views.setViewVisibility(R.id.empty_layout_rect, View.GONE)
views.setViewVisibility(R.id.calendar_layout_rect, View.VISIBLE)
views.setOnClickPendingIntent(R.id.next_event_rect, calPIntent)
- } else if (MediaPlayerHelper.isSomeonePlaying(context)) {
- val musicIntent = PendingIntent.getActivity(
+ } else if (Preferences.showNextAlarm && nextAlarm != "") {
+ val alarmIntent = PendingIntent.getActivity(
context,
widgetID,
- IntentHelper.getMusicIntent(context),
+ IntentHelper.getClockIntent(context),
0
)
- views.setOnClickPendingIntent(R.id.second_row_rect, musicIntent)
+ views.setOnClickPendingIntent(R.id.second_row_rect, alarmIntent)
views.setImageViewBitmap(
R.id.next_event_rect,
@@ -497,17 +497,6 @@ class MainWidget : AppWidgetProvider() {
}
}
- v.empty_layout.visibility = View.GONE
- v.calendar_layout.visibility = View.VISIBLE
- } else if (Preferences.showNextAlarm && nextAlarm != "") {
- v.second_row_icon.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.round_alarm
- )
- )
- v.next_event.text = DateHelper.getDateText(context, now)
- v.next_event_date.text = AlarmHelper.getNextAlarm(context)
v.empty_layout.visibility = View.GONE
v.calendar_layout.visibility = View.VISIBLE
} else if (MediaPlayerHelper.isSomeonePlaying(context)) {
@@ -521,6 +510,17 @@ class MainWidget : AppWidgetProvider() {
v.next_event_date.text = MediaPlayerHelper.getMediaInfo()
v.empty_layout.visibility = View.GONE
v.calendar_layout.visibility = View.VISIBLE
+ } else if (Preferences.showNextAlarm && nextAlarm != "") {
+ v.second_row_icon.setImageDrawable(
+ ContextCompat.getDrawable(
+ context,
+ R.drawable.round_alarm
+ )
+ )
+ v.next_event.text = DateHelper.getDateText(context, now)
+ v.next_event_date.text = AlarmHelper.getNextAlarm(context)
+ v.empty_layout.visibility = View.GONE
+ v.calendar_layout.visibility = View.VISIBLE
}
diff --git a/app/src/main/res/drawable-hdpi/round_extension.png b/app/src/main/res/drawable-hdpi/round_extension.png
new file mode 100644
index 0000000..fcfabe7
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_extension.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_extension_black_24.png b/app/src/main/res/drawable-hdpi/round_extension_black_24.png
new file mode 100644
index 0000000..bd38cf5
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_extension_black_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_extension_black_36.png b/app/src/main/res/drawable-hdpi/round_extension_black_36.png
new file mode 100644
index 0000000..a8d1aff
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_extension_black_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/round_extension_black_48.png b/app/src/main/res/drawable-hdpi/round_extension_black_48.png
new file mode 100644
index 0000000..469fe7a
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/round_extension_black_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_extension.png b/app/src/main/res/drawable-mdpi/round_extension.png
new file mode 100644
index 0000000..866757e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_extension.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_extension_black_24.png b/app/src/main/res/drawable-mdpi/round_extension_black_24.png
new file mode 100644
index 0000000..478193f
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_extension_black_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_extension_black_36.png b/app/src/main/res/drawable-mdpi/round_extension_black_36.png
new file mode 100644
index 0000000..bd38cf5
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_extension_black_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/round_extension_black_48.png b/app/src/main/res/drawable-mdpi/round_extension_black_48.png
new file mode 100644
index 0000000..3ab70e2
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/round_extension_black_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_extension.png b/app/src/main/res/drawable-xhdpi/round_extension.png
new file mode 100644
index 0000000..bd38cf5
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_extension.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_extension_black_24.png b/app/src/main/res/drawable-xhdpi/round_extension_black_24.png
new file mode 100644
index 0000000..3ab70e2
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_extension_black_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_extension_black_36.png b/app/src/main/res/drawable-xhdpi/round_extension_black_36.png
new file mode 100644
index 0000000..469fe7a
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_extension_black_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/round_extension_black_48.png b/app/src/main/res/drawable-xhdpi/round_extension_black_48.png
new file mode 100644
index 0000000..112e77d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/round_extension_black_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_extension.png b/app/src/main/res/drawable-xxhdpi/round_extension.png
new file mode 100644
index 0000000..a8d1aff
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_extension.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_extension_black_24.png b/app/src/main/res/drawable-xxhdpi/round_extension_black_24.png
new file mode 100644
index 0000000..469fe7a
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_extension_black_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_extension_black_36.png b/app/src/main/res/drawable-xxhdpi/round_extension_black_36.png
new file mode 100644
index 0000000..a693954
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_extension_black_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/round_extension_black_48.png b/app/src/main/res/drawable-xxhdpi/round_extension_black_48.png
new file mode 100644
index 0000000..0fd2798
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/round_extension_black_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_extension.png b/app/src/main/res/drawable-xxxhdpi/round_extension.png
new file mode 100644
index 0000000..469fe7a
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_extension.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_extension_black_24.png b/app/src/main/res/drawable-xxxhdpi/round_extension_black_24.png
new file mode 100644
index 0000000..112e77d
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_extension_black_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_extension_black_36.png b/app/src/main/res/drawable-xxxhdpi/round_extension_black_36.png
new file mode 100644
index 0000000..0fd2798
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_extension_black_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/round_extension_black_48.png b/app/src/main/res/drawable-xxxhdpi/round_extension_black_48.png
new file mode 100644
index 0000000..a40ab73
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/round_extension_black_48.png differ
diff --git a/app/src/main/res/drawable/round_extension_24.xml b/app/src/main/res/drawable/round_extension_24.xml
new file mode 100644
index 0000000..91e53c3
--- /dev/null
+++ b/app/src/main/res/drawable/round_extension_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_custom_location.xml b/app/src/main/res/layout/activity_custom_location.xml
index 8694351..6127dc5 100644
--- a/app/src/main/res/layout/activity_custom_location.xml
+++ b/app/src/main/res/layout/activity_custom_location.xml
@@ -13,7 +13,7 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/colorPrimaryDark"
- tools:context="com.tommasoberlose.anotherwidget.ui.activities.ChooseApplicationActivity">
+ tools:context="com.tommasoberlose.anotherwidget.ui.activities.CustomLocationActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_advanced_settings.xml b/app/src/main/res/layout/fragment_advanced_settings.xml
index 9fe5d1f..8073847 100644
--- a/app/src/main/res/layout/fragment_advanced_settings.xml
+++ b/app/src/main/res/layout/fragment_advanced_settings.xml
@@ -172,6 +172,43 @@
style="@style/AnotherWidget.Settings.Subtitle"/>
+
+
+
+
+
+
+
Song info format
We need the notification access permission to check the current playing song.
At a Glance
+ Integrations
+ %d installed integrations
\ 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 26cf78d..5cd9a61 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -195,4 +195,6 @@
Song info format
We need the notification access permission to check the current playing song.
At a Glance
+ Integrations
+ %d installed integrations
\ 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 aeb2b07..e2e713a 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -194,4 +194,6 @@
Formato informazioni brano
Concedi all\'app il permesso di monitorare le notifiche, รจ necessario per poter mostrare il brano in riproduzione.
At a Glance
+ Integrazioni
+ %d integrazioni installate
\ 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 d3c8b97..391f3d3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -206,4 +206,7 @@
Playing song info hidden
Song info format
We need the notification access permission to check the current playing song.
+ Google Fit
+ Integrations
+ %d installed integrations
diff --git a/googlefit/.gitignore b/googlefit/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/googlefit/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/googlefit/build.gradle b/googlefit/build.gradle
new file mode 100644
index 0000000..16d5aa4
--- /dev/null
+++ b/googlefit/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'com.android.dynamic-feature'
+
+def apiKeyPropertiesFile = rootProject.file("apikey.properties")
+def apiKeyProperties = new Properties()
+apiKeyProperties.load(new FileInputStream(apiKeyPropertiesFile))
+
+android {
+ compileSdkVersion 29
+
+ defaultConfig {
+ minSdkVersion 23
+ targetSdkVersion 29
+ versionCode 1
+ versionName "1.0"
+
+ manifestPlaceholders = [ "AWARENESS_API_KEY": apiKeyProperties['AWARENESS_API_KEY']]
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation project(':app')
+
+ // At a Glance
+ implementation 'com.google.android.gms:play-services-awareness:18.0.0'
+}
diff --git a/googlefit/src/main/AndroidManifest.xml b/googlefit/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..726d10f
--- /dev/null
+++ b/googlefit/src/main/AndroidManifest.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/settings.gradle b/settings.gradle
index bc7a0af..25fe3e0 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,4 @@
rootProject.name='Another Widget'
include ':app'
include ':tasksintegration'
+include ':googlefit'
diff --git a/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
index 53f484a..3234213 100644
--- a/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
+++ b/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
@@ -1,4 +1,4 @@
-#Fri May 08 18:14:21 CEST 2020
+#Fri May 08 19:58:17 CEST 2020
base.0=/Users/tommaso/Documents/MyCode/another-widget/tasksintegration/build/intermediates/dex/debug/mergeProjectDexDebug/out/classes.dex
path.0=classes.dex
renamed.0=classes.dex
diff --git a/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources b/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources
index 4997f34..e30d2ec 100644
Binary files a/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources and b/tasksintegration/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources differ