diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a69d8664..123d675b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,7 +77,7 @@
+ android:theme="@style/SudThemeGlifV3.Light" />
+ android:theme="@style/SudThemeGlifV3.Light">
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt
index 7aaaf057..aa62c777 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt
@@ -1,16 +1,18 @@
package com.stevesoltys.seedvault.restore
import android.app.Activity.RESULT_OK
+import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewStub
import android.widget.Button
-import android.widget.TextView
import androidx.fragment.app.Fragment
import com.google.android.setupcompat.util.ResultCodes.RESULT_SKIP
+import com.google.android.setupdesign.GlifLayout
import com.stevesoltys.seedvault.R
+import com.stevesoltys.seedvault.ui.getColorAccent
import org.calyxos.backup.storage.api.SnapshotItem
import org.calyxos.backup.storage.ui.restore.SnapshotFragment
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
@@ -27,12 +29,16 @@ internal class RestoreFilesFragment : SnapshotFragment() {
val topStub: ViewStub = v.findViewById(R.id.topStub)
topStub.layoutResource = R.layout.header_snapshots
- topStub.inflate()
+ val header = topStub.inflate()
+ val suwLayout: GlifLayout = header.findViewById(R.id.setup_wizard_layout)
+ val icon: Drawable = suwLayout.getIcon()
+ icon.setTintList(getColorAccent(requireContext()))
+ suwLayout.setIcon(icon)
val bottomStub: ViewStub = v.findViewById(R.id.bottomStub)
bottomStub.layoutResource = R.layout.footer_snapshots
val footer = bottomStub.inflate()
- val skipView: TextView = footer.findViewById(R.id.skipView)
+ val skipView: Button = footer.findViewById(R.id.skipView)
skipView.setOnClickListener {
requireActivity().apply {
// SetupWizard handles this
@@ -56,6 +62,11 @@ internal class RestoreFilesStartedFragment : Fragment() {
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_files_started, container, false)
+ val suwLayout: GlifLayout = v.findViewById(R.id.setup_wizard_layout)
+ val icon: Drawable = suwLayout.getIcon()
+ icon.setTintList(getColorAccent(requireContext()))
+ suwLayout.setIcon(icon)
+
val button: Button = v.findViewById(R.id.button)
button.setOnClickListener {
requireActivity().apply {
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt
index 5c24f8bb..819c67c4 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt
@@ -1,5 +1,6 @@
package com.stevesoltys.seedvault.restore
+import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -15,8 +16,10 @@ import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
import androidx.recyclerview.widget.RecyclerView
+import com.google.android.setupdesign.GlifLayout
import com.stevesoltys.seedvault.R
import com.stevesoltys.seedvault.ui.AppBackupState.FAILED_NOT_INSTALLED
+import com.stevesoltys.seedvault.ui.getColorAccent
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
class RestoreProgressFragment : Fragment() {
@@ -26,8 +29,8 @@ class RestoreProgressFragment : Fragment() {
private val layoutManager = LinearLayoutManager(context)
private val adapter = RestoreProgressAdapter()
+ private lateinit var suwLayout: GlifLayout
private lateinit var progressBar: ProgressBar
- private lateinit var titleView: TextView
private lateinit var backupNameView: TextView
private lateinit var appList: RecyclerView
private lateinit var button: Button
@@ -39,17 +42,21 @@ class RestoreProgressFragment : Fragment() {
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_progress, container, false)
+ suwLayout = v.findViewById(R.id.setup_wizard_layout)
progressBar = v.findViewById(R.id.progressBar)
- titleView = v.findViewById(R.id.titleView)
backupNameView = v.findViewById(R.id.backupNameView)
appList = v.findViewById(R.id.appList)
button = v.findViewById(R.id.button)
+ val icon: Drawable = suwLayout.getIcon()
+ icon.setTintList(getColorAccent(requireContext()))
+ suwLayout.setIcon(icon)
+
return v
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- titleView.setText(R.string.restore_restoring)
+ suwLayout.setHeaderText(R.string.restore_restoring)
appList.apply {
layoutManager = this@RestoreProgressFragment.layoutManager
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt
index 6959565c..c6ce2a5d 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt
@@ -1,5 +1,6 @@
package com.stevesoltys.seedvault.restore
+import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -7,21 +8,25 @@ import android.view.View.INVISIBLE
import android.view.View.VISIBLE
import android.view.ViewGroup
import android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+import android.widget.Button
import android.widget.ProgressBar
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.RecyclerView
+import com.google.android.setupdesign.GlifLayout
import com.stevesoltys.seedvault.R
+import com.stevesoltys.seedvault.ui.getColorAccent
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
class RestoreSetFragment : Fragment() {
private val viewModel: RestoreViewModel by sharedViewModel()
+ private lateinit var suwLayout: GlifLayout
private lateinit var listView: RecyclerView
private lateinit var progressBar: ProgressBar
private lateinit var errorView: TextView
- private lateinit var skipView: TextView
+ private lateinit var skipView: Button
override fun onCreateView(
inflater: LayoutInflater,
@@ -30,11 +35,16 @@ class RestoreSetFragment : Fragment() {
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_set, container, false)
+ suwLayout = v.findViewById(R.id.setup_wizard_layout)
listView = v.findViewById(R.id.listView)
progressBar = v.findViewById(R.id.progressBar)
errorView = v.findViewById(R.id.errorView)
skipView = v.findViewById(R.id.skipView)
+ val icon: Drawable = suwLayout.getIcon()
+ icon.setTintList(getColorAccent(requireContext()))
+ suwLayout.setIcon(icon)
+
return v
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt
index 5063385d..e60e6c6b 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt
@@ -3,6 +3,7 @@ package com.stevesoltys.seedvault.restore.install
import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Intent
+import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -19,8 +20,10 @@ import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
import androidx.recyclerview.widget.RecyclerView
+import com.google.android.setupdesign.GlifLayout
import com.stevesoltys.seedvault.R
import com.stevesoltys.seedvault.restore.RestoreViewModel
+import com.stevesoltys.seedvault.ui.getColorAccent
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
class InstallProgressFragment : Fragment(), InstallItemListener {
@@ -30,8 +33,8 @@ class InstallProgressFragment : Fragment(), InstallItemListener {
private val layoutManager = LinearLayoutManager(context)
private val adapter = InstallProgressAdapter(this)
+ private lateinit var suwLayout: GlifLayout
private lateinit var progressBar: ProgressBar
- private lateinit var titleView: TextView
private lateinit var backupNameView: TextView
private lateinit var appList: RecyclerView
private lateinit var button: Button
@@ -43,17 +46,21 @@ class InstallProgressFragment : Fragment(), InstallItemListener {
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_progress, container, false)
+ suwLayout = v.findViewById(R.id.setup_wizard_layout)
progressBar = v.findViewById(R.id.progressBar)
- titleView = v.findViewById(R.id.titleView)
backupNameView = v.findViewById(R.id.backupNameView)
appList = v.findViewById(R.id.appList)
button = v.findViewById(R.id.button)
+ val icon: Drawable = suwLayout.getIcon()
+ icon.setTintList(getColorAccent(requireContext()))
+ suwLayout.setIcon(icon)
+
return v
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- titleView.setText(R.string.restore_installing_packages)
+ suwLayout.setHeaderText(R.string.restore_installing_packages)
appList.apply {
layoutManager = this@InstallProgressFragment.layoutManager
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt
index 56695cf4..39fa00e9 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt
@@ -7,6 +7,7 @@ import android.content.Intent
import android.content.Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
import android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION
import android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION
+import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
@@ -14,6 +15,7 @@ import android.view.View
import android.view.View.INVISIBLE
import android.view.View.VISIBLE
import android.view.ViewGroup
+import android.widget.Button
import android.widget.ImageView
import android.widget.ProgressBar
import android.widget.TextView
@@ -21,9 +23,11 @@ import androidx.activity.result.contract.ActivityResultContracts.OpenDocumentTre
import androidx.annotation.RequiresPermission
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.RecyclerView
+import com.google.android.setupdesign.GlifLayout
import com.google.android.setupcompat.util.ResultCodes.RESULT_SKIP
import com.stevesoltys.seedvault.R
import com.stevesoltys.seedvault.ui.INTENT_EXTRA_IS_RESTORE
+import com.stevesoltys.seedvault.ui.getColorAccent
import com.stevesoltys.seedvault.ui.storage.StorageOption.SafOption
import org.koin.androidx.viewmodel.ext.android.getSharedViewModel
@@ -40,14 +44,14 @@ internal class StorageOptionsFragment : Fragment(), StorageOptionClickedListener
}
}
+ private lateinit var suwLayout: GlifLayout
private lateinit var viewModel: StorageViewModel
- private lateinit var titleView: TextView
private lateinit var warningIcon: ImageView
private lateinit var warningText: TextView
private lateinit var divider: View
private lateinit var listView: RecyclerView
private lateinit var progressBar: ProgressBar
- private lateinit var skipView: TextView
+ private lateinit var skipView: Button
private val adapter by lazy { StorageOptionAdapter(viewModel.isRestoreOperation, this) }
@@ -58,7 +62,7 @@ internal class StorageOptionsFragment : Fragment(), StorageOptionClickedListener
): View {
val v: View = inflater.inflate(R.layout.fragment_storage_root, container, false)
- titleView = v.findViewById(R.id.titleView)
+ suwLayout = v.findViewById(R.id.setup_wizard_layout)
warningIcon = v.findViewById(R.id.warningIcon)
warningText = v.findViewById(R.id.warningText)
divider = v.findViewById(R.id.divider)
@@ -66,6 +70,10 @@ internal class StorageOptionsFragment : Fragment(), StorageOptionClickedListener
progressBar = v.findViewById(R.id.progressBar)
skipView = v.findViewById(R.id.skipView)
+ val icon: Drawable = suwLayout.getIcon()
+ icon.setTintList(getColorAccent(requireContext()))
+ suwLayout.setIcon(icon)
+
return v
}
@@ -79,7 +87,7 @@ internal class StorageOptionsFragment : Fragment(), StorageOptionClickedListener
}
if (viewModel.isRestoreOperation) {
- titleView.text = getString(R.string.storage_fragment_restore_title)
+ suwLayout.setHeaderText(R.string.restore_restoring)
skipView.visibility = VISIBLE
skipView.setOnClickListener {
// SetupWizard handles this
diff --git a/app/src/main/res/layout/footer_snapshots.xml b/app/src/main/res/layout/footer_snapshots.xml
index d6c75b3b..05a7746e 100644
--- a/app/src/main/res/layout/footer_snapshots.xml
+++ b/app/src/main/res/layout/footer_snapshots.xml
@@ -2,10 +2,12 @@
+ android:layout_height="wrap_content"
+ style="@style/SudContentFrame">
-
-
+ android:layout_height="match_parent"
+ android:icon="@drawable/ic_cloud_restore"
+ app:sucHeaderText="@string/restore_storage_in_progress_title">
-
+
-
+
-
+
-
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_restore_progress.xml b/app/src/main/res/layout/fragment_restore_progress.xml
index 96d717c3..3db6fb0f 100644
--- a/app/src/main/res/layout/fragment_restore_progress.xml
+++ b/app/src/main/res/layout/fragment_restore_progress.xml
@@ -1,84 +1,65 @@
-
+ android:layout_height="match_parent"
+ android:icon="@drawable/ic_cloud_download"
+ app:sucHeaderText="@string/restore_installing_packages">
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
diff --git a/app/src/main/res/layout/fragment_restore_set.xml b/app/src/main/res/layout/fragment_restore_set.xml
index 4fa5f922..79f81345 100644
--- a/app/src/main/res/layout/fragment_restore_set.xml
+++ b/app/src/main/res/layout/fragment_restore_set.xml
@@ -1,84 +1,73 @@
-
+ android:layout_height="match_parent"
+ android:icon="@drawable/ic_cloud_download"
+ app:sucHeaderText="@string/restore_installing_packages">
-
-
-
-
-
+ android:layout_height="match_parent"
+ style="@style/SudContentFrame">
-
+
-
+
-
+
-
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_storage_check.xml b/app/src/main/res/layout/fragment_storage_check.xml
index 22c1185e..beec6965 100644
--- a/app/src/main/res/layout/fragment_storage_check.xml
+++ b/app/src/main/res/layout/fragment_storage_check.xml
@@ -1,87 +1,83 @@
-
+ android:layout_height="match_parent"
+ android:icon="@drawable/ic_storage"
+ app:sucHeaderText="@string/restore_installing_packages">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_storage_root.xml b/app/src/main/res/layout/fragment_storage_root.xml
index e03dbde5..056f4c2a 100644
--- a/app/src/main/res/layout/fragment_storage_root.xml
+++ b/app/src/main/res/layout/fragment_storage_root.xml
@@ -1,111 +1,88 @@
-
+ android:layout_height="match_parent"
+ app:sucHeaderText="@string/storage_fragment_backup_title">
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="match_parent"
+ style="@style/SudContentFrame">
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/header_snapshots.xml b/app/src/main/res/layout/header_snapshots.xml
index fb712f2f..0d27eae1 100644
--- a/app/src/main/res/layout/header_snapshots.xml
+++ b/app/src/main/res/layout/header_snapshots.xml
@@ -5,29 +5,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
-
-
-
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 9525e4ee..5da345e9 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -12,4 +12,6 @@
#558B2F
#F9A825
#7cb342
+
+ @color/accent