Archived
Started work on SettingsViewModel with discrete SettingsRepository; switched out some icons for the substitution plan
This commit is contained in:
@@ -21,8 +21,6 @@ import androidx.core.content.ContextCompat.checkSelfPermission
|
|||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import com.denizd.substitutionplan.R
|
import com.denizd.substitutionplan.R
|
||||||
import com.denizd.substitutionplan.models.Colour
|
import com.denizd.substitutionplan.models.Colour
|
||||||
import com.denizd.substitutionplan.models.Food
|
|
||||||
import com.denizd.substitutionplan.models.Substitution
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
@@ -132,6 +130,7 @@ internal object SubstUtil {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Could be merged with getColourString
|
||||||
fun getIconForCourse(course: String): Int {
|
fun getIconForCourse(course: String): Int {
|
||||||
return with (course.toLowerCase(Locale.ROOT)) {
|
return with (course.toLowerCase(Locale.ROOT)) {
|
||||||
when {
|
when {
|
||||||
@@ -159,7 +158,7 @@ internal object SubstUtil {
|
|||||||
contains("gll") -> R.drawable.ic_gll
|
contains("gll") -> R.drawable.ic_gll
|
||||||
contains("wat") -> R.drawable.ic_wat
|
contains("wat") -> R.drawable.ic_wat
|
||||||
contains("för") -> R.drawable.ic_help
|
contains("för") -> R.drawable.ic_help
|
||||||
contains("wp") || contains("met") -> R.drawable.ic_pencil
|
contains("wp") || contains("met") -> R.drawable.ic_met
|
||||||
else -> R.drawable.ic_empty
|
else -> R.drawable.ic_empty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -416,8 +415,8 @@ internal object SubstUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun readPrefsFromXml(prefs: SharedPreferences, context: Context, activity: FragmentActivity) {
|
fun readPrefsFromXml(prefs: SharedPreferences, context: Context): Boolean {
|
||||||
if (checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
return if (checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
||||||
val localPrefTypes = ArrayList<String>()
|
val localPrefTypes = ArrayList<String>()
|
||||||
for (i in prefKeys.indices) {
|
for (i in prefKeys.indices) {
|
||||||
localPrefTypes.add(prefTypes[i])
|
localPrefTypes.add(prefTypes[i])
|
||||||
@@ -436,9 +435,10 @@ internal object SubstUtil {
|
|||||||
prefs.setPrefValue(key, value, localPrefTypes[i])
|
prefs.setPrefValue(key, value, localPrefTypes[i])
|
||||||
}
|
}
|
||||||
Toast.makeText(context, context.getString(R.string.success), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, context.getString(R.string.success), Toast.LENGTH_LONG).show()
|
||||||
|
true
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, context.getString(R.string.permission_denied), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, context.getString(R.string.permission_denied), Toast.LENGTH_LONG).show()
|
||||||
requestPermissions(activity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 42)
|
false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,15 @@ package com.denizd.substitutionplan.database
|
|||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.database.Cursor
|
import android.database.Cursor
|
||||||
import android.media.RingtoneManager
|
import android.media.RingtoneManager
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.denizd.substitutionplan.data.SubstUtil
|
||||||
import com.denizd.substitutionplan.models.Ringtone
|
import com.denizd.substitutionplan.models.Ringtone
|
||||||
|
|
||||||
internal class SettingsRepository(private val application: Application) {
|
internal class SettingsRepository(private val application: Application) {
|
||||||
|
|
||||||
|
private val prefs = PreferenceManager.getDefaultSharedPreferences(application)
|
||||||
|
val notificationChannel = SubstUtil.getNotificationChannel(application, prefs)
|
||||||
|
|
||||||
val ringtones: List<Ringtone> by lazy {
|
val ringtones: List<Ringtone> by lazy {
|
||||||
lateinit var ringtoneCursor: Cursor
|
lateinit var ringtoneCursor: Cursor
|
||||||
val ringtoneManager = RingtoneManager(application).apply {
|
val ringtoneManager = RingtoneManager(application).apply {
|
||||||
@@ -27,5 +32,29 @@ internal class SettingsRepository(private val application: Application) {
|
|||||||
alarms
|
alarms
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getInt(key: String, default: Int = 0): Int {
|
||||||
|
return prefs.getInt(key, default)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setAndApplyInt(key: String, value: Int) {
|
||||||
|
prefs.edit().putInt(key, value).apply()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getBool(key: String, default: Boolean = false): Boolean {
|
||||||
|
return prefs.getBoolean(key, default)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setAndApplyBool(key: String, value: Boolean) {
|
||||||
|
prefs.edit().putBoolean(key, value).apply()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getString(key: String, default: String = ""): String? {
|
||||||
|
return prefs.getString(key, default)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setAndApplyString(key: String, value: String) {
|
||||||
|
prefs.edit().putString(key, value).apply()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -156,9 +156,19 @@ internal class SubstRepository(private val application: Application) {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (coursePreference.contains(course.substring(0, questionMark - 1))
|
try {
|
||||||
|| coursePreference.contains(course.substring(questionMark + 1))) {
|
/*
|
||||||
return true
|
These if statements are separated for if, for example, this shows up:
|
||||||
|
"INF7?"
|
||||||
|
if they were nested in a single if statement, the function may not be
|
||||||
|
able to recognise the course and throw an exception instead
|
||||||
|
*/
|
||||||
|
if (coursePreference.contains(course.substring(0, questionMark - 1))) {
|
||||||
|
return true
|
||||||
|
} else if (coursePreference.contains(course.substring(questionMark + 1))) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,9 @@ import android.annotation.SuppressLint
|
|||||||
import android.content.ActivityNotFoundException
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.SharedPreferences
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.preference.PreferenceManager
|
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.text.Editable
|
import android.text.Editable
|
||||||
import android.text.TextWatcher
|
import android.text.TextWatcher
|
||||||
@@ -42,7 +40,6 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
RingtoneAdapter.OnRingtoneClickListener, ColourPickerAdapter.OnColourClickListener {
|
RingtoneAdapter.OnRingtoneClickListener, ColourPickerAdapter.OnColourClickListener {
|
||||||
|
|
||||||
private lateinit var mContext: Context
|
private lateinit var mContext: Context
|
||||||
private lateinit var prefs: SharedPreferences
|
|
||||||
private val customTabsIntent = CustomTabsIntent.Builder().build() as CustomTabsIntent
|
private val customTabsIntent = CustomTabsIntent.Builder().build() as CustomTabsIntent
|
||||||
private var customiseColoursButtonLongPressed = false
|
private var customiseColoursButtonLongPressed = false
|
||||||
private var versionCount = 0
|
private var versionCount = 0
|
||||||
@@ -58,7 +55,6 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
override fun onAttach(context: Context) {
|
override fun onAttach(context: Context) {
|
||||||
super.onAttach(context)
|
super.onAttach(context)
|
||||||
mContext = context
|
mContext = context
|
||||||
prefs = PreferenceManager.getDefaultSharedPreferences(mContext)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
@@ -108,37 +104,37 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
switchAutoRefresh.setOnCheckedChangeListener(thisFragment)
|
switchAutoRefresh.setOnCheckedChangeListener(thisFragment)
|
||||||
|
|
||||||
// Set checked
|
// Set checked
|
||||||
switchGreeting.isChecked = prefs.getBoolean("greeting", true)
|
switchGreeting.isChecked = viewModel.shouldGreet
|
||||||
switchNotifications.isChecked = prefs.getBoolean("notif", false)
|
switchNotifications.isChecked = viewModel.shouldReceiveNotifications
|
||||||
|
|
||||||
switchPersonalisedPlan.isChecked = prefs.getBoolean("defaultPersonalised", false)
|
switchPersonalisedPlan.isChecked = viewModel.shouldOpenPersonalisedPlan
|
||||||
switchAutoRefresh.isChecked = prefs.getBoolean("autoRefresh", false)
|
switchAutoRefresh.isChecked = viewModel.shouldAutoRefresh
|
||||||
|
|
||||||
// Set edit text (+ listeners)
|
// Set edit text (+ listeners)
|
||||||
edittextName.setText(prefs.getString("username", ""))
|
edittextName.setText(viewModel.username)
|
||||||
edittextName.addTextChangedListener(object : TextWatcher {
|
edittextName.addTextChangedListener(object : TextWatcher {
|
||||||
override fun afterTextChanged(s: Editable) {}
|
override fun afterTextChanged(s: Editable) {}
|
||||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
||||||
prefs.edit().putString("username", edittextName.text.toString().trim()).apply()
|
viewModel.username = edittextName.text.toString().trim()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
edittextGroup.setText(prefs.getString("classes", ""))
|
edittextGroup.setText(viewModel.group)
|
||||||
edittextGroup.addTextChangedListener(object : TextWatcher {
|
edittextGroup.addTextChangedListener(object : TextWatcher {
|
||||||
override fun afterTextChanged(s: Editable) {}
|
override fun afterTextChanged(s: Editable) {}
|
||||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
||||||
prefs.edit().putString("classes", edittextGroup.text.toString()).apply()
|
viewModel.group = edittextGroup.text.toString()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
edittextCourses.setText(prefs.getString("courses", ""))
|
edittextCourses.setText(viewModel.courses)
|
||||||
edittextCourses.addTextChangedListener(object : TextWatcher {
|
edittextCourses.addTextChangedListener(object : TextWatcher {
|
||||||
override fun afterTextChanged(s: Editable) {}
|
override fun afterTextChanged(s: Editable) {}
|
||||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
||||||
prefs.edit().putString("courses", edittextCourses.text.toString()).apply()
|
viewModel.courses = edittextCourses.text.toString()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -154,9 +150,9 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
R.layout.dropdown_item
|
R.layout.dropdown_item
|
||||||
)
|
)
|
||||||
autocompleteDarkMode.setAdapter(darkModeAdapter)
|
autocompleteDarkMode.setAdapter(darkModeAdapter)
|
||||||
autocompleteDarkMode.setText(autocompleteDarkMode.adapter.getItem(prefs.getInt("themeInt", 0)).toString(), false)
|
autocompleteDarkMode.setText(autocompleteDarkMode.adapter.getItem(viewModel.currentTheme).toString(), false)
|
||||||
autocompleteDarkMode.setOnItemClickListener { _, _, position, _ ->
|
autocompleteDarkMode.setOnItemClickListener { _, _, position, _ ->
|
||||||
prefs.edit().putInt("themeInt", position).apply()
|
viewModel.currentTheme = position
|
||||||
when (position) {
|
when (position) {
|
||||||
0 -> {
|
0 -> {
|
||||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||||||
@@ -174,14 +170,14 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
view.rootView.findViewById<BottomNavigationView>(R.id.bottom_nav).selectedItemId = if (prefs.getBoolean("defaultPersonalised", false)) {
|
view.rootView.findViewById<BottomNavigationView>(R.id.bottom_nav).selectedItemId = if (viewModel.shouldOpenPersonalisedPlan) {
|
||||||
R.id.personal
|
R.id.personal
|
||||||
} else {
|
} else {
|
||||||
R.id.plan
|
R.id.plan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val selectedOrderingOption = if (prefs.getBoolean("app_specific_sorting", true)) 0 else 1
|
val selectedOrderingOption = if (viewModel.shouldUseAppSorting) 0 else 1
|
||||||
val orderingArrayAdapter = ArrayAdapter.createFromResource(
|
val orderingArrayAdapter = ArrayAdapter.createFromResource(
|
||||||
mContext,
|
mContext,
|
||||||
R.array.ordering_systems,
|
R.array.ordering_systems,
|
||||||
@@ -190,7 +186,7 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
autocompleteOrder.setAdapter(orderingArrayAdapter)
|
autocompleteOrder.setAdapter(orderingArrayAdapter)
|
||||||
autocompleteOrder.setText(autocompleteOrder.adapter.getItem(selectedOrderingOption).toString(), false)
|
autocompleteOrder.setText(autocompleteOrder.adapter.getItem(selectedOrderingOption).toString(), false)
|
||||||
autocompleteOrder.setOnItemClickListener { _, _, position, _ ->
|
autocompleteOrder.setOnItemClickListener { _, _, position, _ ->
|
||||||
prefs.edit().putBoolean("app_specific_sorting", position == 0).apply()
|
viewModel.shouldUseAppSorting = position == 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -269,7 +265,8 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
R.id.button_forced_refresh -> {
|
R.id.button_forced_refresh -> {
|
||||||
prefs.edit().putString("timeNew", "").putString("newFoodTime", "").apply()
|
viewModel.setAndApplyString("timeNew", "")
|
||||||
|
viewModel.setAndApplyString("newFoodTime", "")
|
||||||
makeToast(mContext.getString(R.string.force_refresh_cleared_times))
|
makeToast(mContext.getString(R.string.force_refresh_cleared_times))
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
@@ -281,10 +278,10 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
if (v?.isPressed == true) {
|
if (v?.isPressed == true) {
|
||||||
when (v.id) {
|
when (v.id) {
|
||||||
R.id.switch_greeting -> {
|
R.id.switch_greeting -> {
|
||||||
prefs.edit().putBoolean("greeting", isChecked).apply()
|
viewModel.shouldGreet = isChecked
|
||||||
}
|
}
|
||||||
R.id.switch_notifications -> {
|
R.id.switch_notifications -> {
|
||||||
prefs.edit().putBoolean("notif", isChecked).apply()
|
viewModel.shouldReceiveNotifications = isChecked
|
||||||
if (isChecked) {
|
if (isChecked) {
|
||||||
subscribeToTopic(SubstUtil.FB_TOPIC_ANDROID)
|
subscribeToTopic(SubstUtil.FB_TOPIC_ANDROID)
|
||||||
} else {
|
} else {
|
||||||
@@ -292,10 +289,10 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.switch_personalised_plan -> {
|
R.id.switch_personalised_plan -> {
|
||||||
prefs.edit().putBoolean("defaultPersonalised", isChecked).apply()
|
viewModel.shouldOpenPersonalisedPlan = isChecked
|
||||||
}
|
}
|
||||||
R.id.switch_auto_refresh -> {
|
R.id.switch_auto_refresh -> {
|
||||||
prefs.edit().putBoolean("autoRefresh", isChecked).apply()
|
viewModel.shouldAutoRefresh = isChecked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -320,7 +317,7 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onColourClick(position: Int, colourNoLang: String) {
|
override fun onColourClick(position: Int, colourNoLang: String) {
|
||||||
prefs.edit().putString("card$currentCourseSelectedInColourPicker", colourNoLang).apply()
|
viewModel.setAndApplyString("card$currentCourseSelectedInColourPicker", colourNoLang)
|
||||||
val recyclerViewState = colourRecycler.layoutManager?.onSaveInstanceState()
|
val recyclerViewState = colourRecycler.layoutManager?.onSaveInstanceState()
|
||||||
colourRecycler.adapter = CourseColourAdapter(getColourList(), this)
|
colourRecycler.adapter = CourseColourAdapter(getColourList(), this)
|
||||||
colourRecycler.layoutManager?.onRestoreInstanceState(recyclerViewState)
|
colourRecycler.layoutManager?.onRestoreInstanceState(recyclerViewState)
|
||||||
@@ -328,10 +325,8 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onRingtoneClick(position: Int, name: String, uri: String) {
|
override fun onRingtoneClick(position: Int, name: String, uri: String) {
|
||||||
prefs.edit().apply {
|
viewModel.setAndApplyString("ringtoneName", name)
|
||||||
putString("ringtoneName", name)
|
viewModel.setAndApplyString("ringtoneUri", uri)
|
||||||
putString("ringtoneUri", uri)
|
|
||||||
}.apply()
|
|
||||||
setRingtoneText()
|
setRingtoneText()
|
||||||
ringtoneDialog.dismiss()
|
ringtoneDialog.dismiss()
|
||||||
}
|
}
|
||||||
@@ -364,7 +359,7 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
|
|
||||||
private fun createRingtoneDialog() {
|
private fun createRingtoneDialog() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
SubstUtil.getNotificationChannel(mContext, prefs)
|
viewModel.notificationChannel
|
||||||
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply {
|
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply {
|
||||||
putExtra(Settings.EXTRA_APP_PACKAGE, mContext.applicationContext.packageName)
|
putExtra(Settings.EXTRA_APP_PACKAGE, mContext.applicationContext.packageName)
|
||||||
putExtra(Settings.EXTRA_CHANNEL_ID, "general")
|
putExtra(Settings.EXTRA_CHANNEL_ID, "general")
|
||||||
@@ -418,12 +413,12 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
devDialogText.text = getDiagnosticsText()
|
devDialogText.text = getDiagnosticsText()
|
||||||
|
|
||||||
resetLaunchBtn.setOnClickListener {
|
resetLaunchBtn.setOnClickListener {
|
||||||
prefs.edit().putInt("launchDev", 0).apply()
|
viewModel.setAndApplyInt("launchDev", 0)
|
||||||
devDialogText.text = getDiagnosticsText()
|
devDialogText.text = getDiagnosticsText()
|
||||||
}
|
}
|
||||||
|
|
||||||
resetNotificationBtn.setOnClickListener {
|
resetNotificationBtn.setOnClickListener {
|
||||||
prefs.edit().putInt("pingFB", 0).apply()
|
viewModel.setAndApplyInt("pingFB", 0)
|
||||||
devDialogText.text = getDiagnosticsText()
|
devDialogText.text = getDiagnosticsText()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -431,55 +426,65 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
alertDialogDev.show()
|
alertDialogDev.show()
|
||||||
}
|
}
|
||||||
this == "_login" -> {
|
this == "_login" -> {
|
||||||
prefs.edit().putBoolean("successful_login", false).apply()
|
viewModel.setAndApplyBool("successful_login", false)
|
||||||
makeToast("Login flag cleared")
|
makeToast("Login flag cleared")
|
||||||
}
|
}
|
||||||
this == "_firsttime" -> {
|
this == "_firsttime" -> {
|
||||||
prefs.edit().putBoolean("firstTime", true).apply()
|
viewModel.setAndApplyBool("firstTime", true)
|
||||||
makeToast("First time flag cleared")
|
makeToast("First time flag cleared")
|
||||||
}
|
}
|
||||||
this == "_testurls" -> {
|
this == "_testurls" -> {
|
||||||
val currentTest = !prefs.getBoolean("testUrls", false)
|
val currentTest = !viewModel.getBool("testUrls", false)
|
||||||
prefs.edit().putBoolean("testUrls", currentTest)
|
viewModel.setAndApplyBool("testUrls", currentTest)
|
||||||
.putString("custom_test_url", "").apply()
|
if (viewModel.getString("custom_test_url") != "") {
|
||||||
makeToast("Cleared custom URL")
|
viewModel.setAndApplyString("custom_test_url", "")
|
||||||
|
makeToast("Cleared custom URL")
|
||||||
|
}
|
||||||
makeToast("Test URLs set to $currentTest")
|
makeToast("Test URLs set to $currentTest")
|
||||||
}
|
}
|
||||||
length > 4 && substring(0, 4) == "_url" -> {
|
length > 4 && substring(0, 4) == "_url" -> {
|
||||||
prefs.edit().putString("custom_test_url", substring(4, length)).apply()
|
viewModel.setAndApplyString("custom_test_url", substring(4, length))
|
||||||
makeToast("Successfully entered custom URL")
|
makeToast("Successfully entered custom URL")
|
||||||
}
|
}
|
||||||
length == 4 && substring(0, 4) == "_url" -> {
|
length == 4 && substring(0, 4) == "_url" -> {
|
||||||
prefs.edit().putString("custom_test_url", "").apply()
|
viewModel.setAndApplyString("custom_test_url", "")
|
||||||
makeToast("Cleared custom URL")
|
makeToast("Cleared custom URL")
|
||||||
}
|
}
|
||||||
this == "_devchannel" -> {
|
this == "_devchannel" -> {
|
||||||
val subbed = if (prefs.getBoolean("subscribedToFBDebugChannel", false)) {
|
val subscribedToDevelopmentChannel = viewModel.getBool("subscribedToFBDebugChannel")
|
||||||
|
val subbedText = if (subscribedToDevelopmentChannel) {
|
||||||
unsubscribeFromTopic(SubstUtil.FB_TOPIC_DEVELOPMENT)
|
unsubscribeFromTopic(SubstUtil.FB_TOPIC_DEVELOPMENT)
|
||||||
"Unsubscribed from"
|
"Unsubscribed from"
|
||||||
} else {
|
} else {
|
||||||
subscribeToTopic(SubstUtil.FB_TOPIC_DEVELOPMENT)
|
subscribeToTopic(SubstUtil.FB_TOPIC_DEVELOPMENT)
|
||||||
"Subscribed to"
|
"Subscribed to"
|
||||||
}
|
}
|
||||||
prefs.edit().putBoolean("subscribedToFBDebugChannel", !prefs.getBoolean("subscribedToFBDebugChannel", false)).apply()
|
viewModel.setAndApplyBool("subscribedToFBDebugChannel", !subscribedToDevelopmentChannel)
|
||||||
makeToast("$subbed Firebase development channel")
|
makeToast("$subbedText Firebase development channel")
|
||||||
}
|
}
|
||||||
this == "_ioschannel" -> {
|
this == "_ioschannel" -> {
|
||||||
val subbed = if (prefs.getBoolean("subscribedToiOSChannel", false)) {
|
val subscribedToIosChannel = viewModel.getBool("subscribedToiOSChannel")
|
||||||
|
val subbed = if (subscribedToIosChannel) {
|
||||||
unsubscribeFromTopic(SubstUtil.FB_TOPIC_IOS)
|
unsubscribeFromTopic(SubstUtil.FB_TOPIC_IOS)
|
||||||
"Unsubscribed from"
|
"Unsubscribed from"
|
||||||
} else {
|
} else {
|
||||||
subscribeToTopic(SubstUtil.FB_TOPIC_IOS)
|
subscribeToTopic(SubstUtil.FB_TOPIC_IOS)
|
||||||
"Subscribed to"
|
"Subscribed to"
|
||||||
}
|
}
|
||||||
prefs.edit().putBoolean("subscribedToiOSChannel", !prefs.getBoolean("subscribedToiOSChannel", false)).apply()
|
viewModel.setAndApplyBool("subscribedToiOSChannel", !subscribedToIosChannel)
|
||||||
makeToast("$subbed iOS channel")
|
makeToast("$subbed iOS channel")
|
||||||
}
|
}
|
||||||
this == "_viewstacktrace" -> {
|
this == "_viewstacktrace" -> {
|
||||||
createDialog("Debug Stack Trace", prefs.getString("debug_recent_exception", "") ?: "")
|
createDialog("Debug Stack Trace", viewModel.getString("debug_recent_exception"))
|
||||||
}
|
}
|
||||||
this == "_write" -> SubstUtil.writePrefsToXml(prefs, mContext, activity!!)
|
// this == "_write" -> SubstUtil.writePrefsToXml(prefs, mContext, requireActivity())
|
||||||
this == "_read" -> SubstUtil.readPrefsFromXml(prefs, mContext, activity!!)
|
// this == "_read" -> {
|
||||||
|
// if (!SubstUtil.readPrefsFromXml(prefs, mContext)) {
|
||||||
|
// ActivityCompat.requestPermissions(requireActivity(), arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 42)
|
||||||
|
// } else {
|
||||||
|
// TODO("Figure this out or remove it outright as it is outdated")
|
||||||
|
// }
|
||||||
|
// }
|
||||||
else -> makeToast(getString(R.string.invalid_code))
|
else -> makeToast(getString(R.string.invalid_code))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -545,7 +550,7 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
R.drawable.ic_gll,
|
R.drawable.ic_gll,
|
||||||
R.drawable.ic_wat,
|
R.drawable.ic_wat,
|
||||||
R.drawable.ic_help,
|
R.drawable.ic_help,
|
||||||
R.drawable.ic_pencil
|
R.drawable.ic_met
|
||||||
)
|
)
|
||||||
|
|
||||||
for (i in coursesNoLang.indices) {
|
for (i in coursesNoLang.indices) {
|
||||||
@@ -554,7 +559,7 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
courses[i],
|
courses[i],
|
||||||
coursesNoLang[i],
|
coursesNoLang[i],
|
||||||
coursesIcons[i],
|
coursesIcons[i],
|
||||||
SubstUtil.getColourForString(prefs.getString("card${coursesNoLang[i]}", "") ?: "", mContext)
|
SubstUtil.getColourForString(viewModel.getString("card${coursesNoLang[i]}", ""), mContext)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -566,8 +571,8 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
binding.textCustomiseRingtoneDesc.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
binding.textCustomiseRingtoneDesc.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
mContext.getString(R.string.pick_ringtone_desc_o)
|
mContext.getString(R.string.pick_ringtone_desc_o)
|
||||||
} else {
|
} else {
|
||||||
val tone = if ((prefs.getString("ringtoneName", "") ?: "").isNotEmpty()) {
|
val tone = if ((viewModel.getString("ringtoneName")).isNotEmpty()) {
|
||||||
prefs.getString("ringtoneName", "")
|
viewModel.getString("ringtoneName")
|
||||||
} else {
|
} else {
|
||||||
mContext.getString(R.string.default_ringtone)
|
mContext.getString(R.string.default_ringtone)
|
||||||
}
|
}
|
||||||
@@ -580,15 +585,15 @@ internal class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongC
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getDiagnosticsText(): String {
|
private fun getDiagnosticsText(): String {
|
||||||
return "First Launch: ${prefs.getString("firstTimeDev", "")}" +
|
return "First Launch: ${viewModel.getString("firstTimeDev", "")}" +
|
||||||
"\n\nApp launched: ${prefs.getInt("launchDev", 0)}" +
|
"\n\nApp launched: ${viewModel.getInt("launchDev", 0)}" +
|
||||||
"\n\nFirebase ping service fired: ${prefs.getInt("pingFB", 0)}" +
|
"\n\nFirebase ping service fired: ${viewModel.getInt("pingFB", 0)}" +
|
||||||
"\n\nDevice Name: ${Build.DEVICE}" +
|
"\n\nDevice Name: ${Build.DEVICE}" +
|
||||||
"\n\nDevice Model: ${Build.MODEL}" +
|
"\n\nDevice Model: ${Build.MODEL}" +
|
||||||
"\n\nAndroid Version: ${Build.VERSION.RELEASE}" +
|
"\n\nAndroid Version: ${Build.VERSION.RELEASE}" +
|
||||||
"\n\nSubscribed to notification channel: ${prefs.getBoolean("notif", false)}" +
|
"\n\nSubscribed to notification channel: ${viewModel.getBool("notif", false)}" +
|
||||||
"\n\nSubscribed to iOS channel: ${prefs.getBoolean("subscribedToiOSChannel", false)}" +
|
"\n\nSubscribed to iOS channel: ${viewModel.getBool("subscribedToiOSChannel", false)}" +
|
||||||
"\n\nSubscribed to dev channel: ${prefs.getBoolean("subscribedToFBDebugChannel", false)}"
|
"\n\nSubscribed to dev channel: ${viewModel.getBool("subscribedToFBDebugChannel", false)}"
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun subscribeToTopic(topic: String) = FirebaseMessaging.getInstance().subscribeToTopic(topic)
|
private fun subscribeToTopic(topic: String) = FirebaseMessaging.getInstance().subscribeToTopic(topic)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.denizd.substitutionplan.viewmodels
|
|||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.lifecycle.AndroidViewModel
|
import androidx.lifecycle.AndroidViewModel
|
||||||
|
import com.denizd.substitutionplan.data.SubstUtil
|
||||||
import com.denizd.substitutionplan.database.SettingsRepository
|
import com.denizd.substitutionplan.database.SettingsRepository
|
||||||
import com.denizd.substitutionplan.models.Ringtone
|
import com.denizd.substitutionplan.models.Ringtone
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@@ -11,6 +12,38 @@ import kotlinx.coroutines.launch
|
|||||||
internal class SettingsViewModel(application: Application) : AndroidViewModel(application) {
|
internal class SettingsViewModel(application: Application) : AndroidViewModel(application) {
|
||||||
|
|
||||||
private val repo = SettingsRepository(application)
|
private val repo = SettingsRepository(application)
|
||||||
|
var shouldGreet: Boolean
|
||||||
|
get() = repo.getBool("greeting")
|
||||||
|
set(it) = repo.setAndApplyBool("greeting", it)
|
||||||
|
var shouldReceiveNotifications: Boolean
|
||||||
|
get() = repo.getBool("notif")
|
||||||
|
set(it) = repo.setAndApplyBool("notif", it)
|
||||||
|
var shouldOpenPersonalisedPlan: Boolean
|
||||||
|
get() = repo.getBool("defaultPersonalised")
|
||||||
|
set(it) = repo.setAndApplyBool("defaultPersonalised", it)
|
||||||
|
var shouldAutoRefresh: Boolean
|
||||||
|
get() = repo.getBool("autoRefresh")
|
||||||
|
set(it) = repo.setAndApplyBool("autoRefresh", it)
|
||||||
|
var shouldUseAppSorting: Boolean
|
||||||
|
get() = repo.getBool("app_specific_sorting")
|
||||||
|
set(it) = repo.setAndApplyBool("app_specific_sorting", it)
|
||||||
|
|
||||||
|
|
||||||
|
var username: String
|
||||||
|
get() = repo.getString("username") ?: ""
|
||||||
|
set(it) = repo.setAndApplyString("username", it)
|
||||||
|
var group: String
|
||||||
|
get() = repo.getString("classes") ?: ""
|
||||||
|
set(it) = repo.setAndApplyString("classes", it)
|
||||||
|
var courses: String
|
||||||
|
get() = repo.getString("courses") ?: ""
|
||||||
|
set(it) = repo.setAndApplyString("courses", it)
|
||||||
|
|
||||||
|
var currentTheme: Int
|
||||||
|
get() = repo.getInt("themeInt")
|
||||||
|
set(it) = repo.setAndApplyInt("themeInt", it)
|
||||||
|
|
||||||
|
val notificationChannel = repo.notificationChannel
|
||||||
|
|
||||||
lateinit var ringtones: List<Ringtone>
|
lateinit var ringtones: List<Ringtone>
|
||||||
val ringtonesInitialised = ::ringtones.isInitialized
|
val ringtonesInitialised = ::ringtones.isInitialized
|
||||||
@@ -22,4 +55,11 @@ internal class SettingsViewModel(application: Application) : AndroidViewModel(ap
|
|||||||
updateUi()
|
updateUi()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getInt(key: String, default: Int = 0) = repo.getInt(key, default)
|
||||||
|
fun setAndApplyInt(key: String, value: Int) = repo.setAndApplyInt(key, value)
|
||||||
|
fun getBool(key: String, default: Boolean = false) = repo.getBool(key, default)
|
||||||
|
fun setAndApplyBool(key: String, value: Boolean) = repo.setAndApplyBool(key, value)
|
||||||
|
fun getString(key: String, default: String = "", ifNull: String = "") = repo.getString(key, default) ?: ifNull
|
||||||
|
fun setAndApplyString(key: String, value: String) = repo.setAndApplyString(key, value)
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,24 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="384"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="384" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m8,144.785c0,92.488 39.098,239.215 144,239.215 46.047,0 79.406,-28.281 102.359,-67.824 13,10.391 28.914,16.313 45.641,16.313 41.902,0 76,-36.063 76,-80.391s-34.098,-80.395 -76,-80.395c-1.695,0 -3.367,0.145 -5.047,0.266 0.703,-9.426 1.047,-18.543 1.047,-27.184 0,-8.832 -7.168,-16 -16,-16h-256c-8.832,0 -16,7.16 -16,16zM300,203.703c24.266,0 44,21.703 44,48.395 0,26.688 -19.734,48.391 -44,48.391 -11.711,0 -22.824,-5.273 -31.016,-14.289 10.641,-25.824 17.871,-54.102 22.145,-81.465 2.918,-0.656 5.879,-1.031 8.871,-1.031zM263.617,160.785c-0.449,9.453 -1.305,19.191 -2.547,29.031 -0.023,0.152 -0.031,0.305 -0.055,0.457 -3.887,30.637 -11.648,62.207 -23.566,89.254 -0.969,1.418 -1.633,2.977 -2.105,4.602 -18.352,39.262 -45.824,67.871 -83.344,67.871 -72.566,0 -107.633,-106.93 -111.617,-191.215zM263.617,160.785"/>
|
android:height="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m64,16v68.68c0,8.832 7.168,16 16,16s16,-7.168 16,-16v-68.68c0,-8.832 -7.168,-16 -16,-16s-16,7.168 -16,16zM64,16"/>
|
android:viewportWidth="512"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m128,16v68.68c0,8.832 7.168,16 16,16s16,-7.168 16,-16v-68.68c0,-8.832 -7.168,-16 -16,-16s-16,7.168 -16,16zM128,16"/>
|
android:viewportHeight="512">
|
||||||
<path android:fillColor="#FF000000" android:pathData="m192,16v68.68c0,8.832 7.168,16 16,16s16,-7.168 16,-16v-68.68c0,-8.832 -7.168,-16 -16,-16s-16,7.168 -16,16zM192,16"/>
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M405.333,256h-384C8.533,256 0,264.533 0,277.333v21.333C0,416 96,512 213.333,512s213.333,-96 213.333,-213.333v-21.333C426.667,264.533 418.133,256 405.333,256zM213.333,469.333c-93.867,0 -170.667,-76.8 -170.667,-170.667H384C384,392.533 307.2,469.333 213.333,469.333z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M490.667,277.333h-85.333c-12.8,0 -21.333,8.533 -21.333,21.333c0,12.8 8.533,21.333 21.333,21.333H467.2c-10.667,36.267 -42.667,64 -83.2,64c-12.8,0 -21.333,8.533 -21.333,21.333c0,12.8 8.533,21.333 21.333,21.333c70.4,0 128,-57.6 128,-128C512,285.867 503.467,277.333 490.667,277.333z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M362.667,469.333h-320c-12.8,0 -21.333,8.533 -21.333,21.333S29.867,512 42.667,512h320c12.8,0 21.333,-8.533 21.333,-21.333S375.467,469.333 362.667,469.333z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M121.6,121.6c38.4,-36.267 36.267,-78.933 0,-115.2c-8.533,-8.533 -21.333,-8.533 -29.867,0c-8.533,8.533 -8.533,21.333 0,29.867c19.2,19.2 21.333,36.267 0,55.467c0,0 0,0 -2.133,2.133c-36.267,34.133 -34.133,76.8 2.133,113.067c8.533,8.533 21.333,8.533 29.867,0c8.533,-8.533 8.533,-21.333 0,-29.867C102.4,157.867 100.267,140.8 121.6,121.6z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M228.267,121.6c40.533,-36.267 36.267,-81.067 0,-115.2c-8.533,-8.533 -21.333,-8.533 -29.867,0c-8.533,8.533 -8.533,21.333 0,29.867c19.2,19.2 21.333,36.267 0,55.467c0,0 0,0 -2.133,2.133C160,128 162.133,170.667 198.4,206.933c8.533,8.533 21.333,8.533 29.867,0s8.533,-21.333 0,-29.867C209.067,157.867 206.933,140.8 228.267,121.6z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M334.933,121.6c40.533,-36.267 36.267,-81.067 0,-115.2c-8.533,-8.533 -21.333,-8.533 -29.867,0c-8.533,8.533 -8.533,21.333 0,29.867c19.2,19.2 21.333,36.267 0,55.467c0,0 0,0 -2.133,2.133c-38.4,36.267 -34.133,78.933 0,115.2c8.533,8.533 21.333,8.533 29.867,0s8.533,-21.333 0,-29.867C315.733,157.867 313.6,140.8 334.933,121.6z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="512.0153"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="512" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m405.152,373.34c99.734,-99.996 99.734,-261.859 0,-361.855l-30.129,30.133c83.195,83.195 83.461,218.125 0.266,301.32 -29.598,29.602 -67.199,49.867 -108.262,58.133v-21.867c103.461,-23.465 168.258,-126.395 144.523,-229.855 -23.461,-103.465 -126.395,-167.996 -229.855,-144.531 -103.465,23.469 -168.527,126.664 -144.797,229.859 20,87.461 97.598,149.328 187.195,149.328v21.336c-56.535,0 -110.93,-22.402 -150.93,-62.402l-30.133,30.133c48,47.996 113.063,74.93 181.063,74.93v21.336h-42.668v42.664h127.996v-42.664h-42.66v-25.066c52.527,-8.535 100.793,-33.336 138.391,-70.93zM295.023,323.738 L267.559,296.273c22.398,-17.598 42.664,-37.863 60.266,-60.266l27.73,27.469c-13.863,25.332 -34.934,46.395 -60.531,60.262zM74.766,192.277c0,-8.801 0.797,-17.602 2.398,-26.398l18.668,18.664c-7.203,12 -13.066,24.801 -17.867,37.867 -2.133,-9.867 -3.199,-20 -3.199,-30.133zM373.422,192.277c0,8.797 -0.801,17.598 -2.398,26.398l-18.668,-18.668c7.199,-12 13.066,-24.801 17.867,-37.863 2.133,9.863 3.199,19.996 3.199,30.133zM337.691,108.813c0.531,15.734 -5.07,36.535 -16.801,59.469l-21.336,-21.336zM307.555,78.68 L269.426,116.813 248.094,95.48c21.867,-11.199 41.863,-16.801 57.328,-16.801zM239.293,147.211 L178.762,207.477 150.766,179.207c17.328,-22.66 37.594,-42.926 60.262,-60.262zM148.629,237.609 L110.496,275.742c-0.531,-15.734 5.066,-36.535 16.801,-59.465zM140.629,305.871 L178.762,267.742 200.094,289.074c-22.668,11.73 -43.734,17.332 -59.465,16.797zM208.895,237.609 L269.426,177.344 297.422,205.344c-8.531,11.465 -18.133,22.133 -27.996,32.266 -10.133,10.133 -20.801,19.465 -32.266,28zM254.492,46.148c-13.066,4.797 -25.867,10.93 -37.867,17.863l-18.664,-18.66c18.664,-3.203 37.867,-2.934 56.531,0.797zM153.16,61.078 L180.625,88.547c-22.398,17.598 -42.66,37.867 -60.262,60.266l-27.734,-27.465c13.867,-25.602 34.934,-46.402 60.531,-60.27zM193.695,338.406c13.066,-4.801 25.863,-10.934 37.863,-17.867l18.668,18.664c-18.668,3.469 -37.867,3.203 -56.531,-0.797zM193.695,338.406"/>
|
android:height="24dp"
|
||||||
|
android:viewportWidth="192"
|
||||||
|
android:viewportHeight="192">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M39.432,128.568a80.087,80.087 0,0 1,0 -113.136L28.117,4.117A96.119,96.119 0,0 0,24.455 136H24v40H8v16H56V176H40V149.963a96.127,96.127 0,0 0,123.883 -10.08l-11.315,-11.315A80.086,80.086 0,0 1,39.432 128.568Z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M96,144A72,72 0,1 0,24 72,72.081 72.081,0 0,0 96,144ZM40.309,77.87l5.161,1.72A8.027,8.027 0,0 0,48 80H64V94.111l-8.337,16.674A55.823,55.823 0,0 1,40.309 77.87ZM152,72a56.157,56.157 0,0 1,-0.75 9.1l-3.406,-0.568L134.992,67.679 129.413,50.94l13.214,-9.91A55.664,55.664 0,0 1,152 72ZM131.907,29.069 L115.2,41.6a8,8 0,0 0,-2.79 8.93l8,24a8.025,8.025 0,0 0,1.933 3.127l16,16a8.007,8.007 0,0 0,4.342 2.235l3.659,0.609A56.063,56.063 0,0 1,96 128c-0.658,0 -1.309,-0.027 -1.962,-0.05L102.4,116.8a8.036,8.036 0,0 0,0.755 -1.222l16,-32a8,8 0,0 0,-0.5 -8.015l-16,-24A7.994,7.994 0,0 0,98.53 48.41L78.05,41.584 70.32,22.26a55.838,55.838 0,0 1,61.587 6.809ZM56.95,31.915l7.622,19.056a8,8 0,0 0,4.9 4.619l21.4,7.132 11.9,17.853 -13.6,27.2L76.6,124.532a55.727,55.727 0,0 1,-8.05 -3.748l10.6,-21.206A7.994,7.994 0,0 0,80 96V72a8,8 0,0 0,-8 -8H49.3l-8.252,-2.751A55.94,55.94 0,0 1,56.95 31.915Z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="512.108"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="512.108" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M407.65,30.31c-5.858,-5.857 -15.355,-5.858 -21.213,0c-2.649,2.649 -5.235,5.271 -7.78,7.85c-24.479,24.814 -42.165,42.744 -75.047,45.536c-10.553,0.896 -21.649,2.1 -32.689,4.502c-25.522,-14.996 -46.521,-14.169 -63.558,-13.484c-17.18,0.687 -27.55,1.104 -41.103,-12.447c-11.66,-11.661 -22.823,-23.236 -34.611,-35.024c-5.855,-5.855 -15.356,-5.857 -21.213,0L4.674,133.007c-6.828,6.83 -5.516,16.303 -0.302,21.516c5.568,5.569 11.84,10.936 17.905,16.126c13.227,11.319 26.904,23.024 32.805,36.404c6.777,15.365 4.466,35.92 15.871,55.32l-1.562,1.562c-8.5,8.5 -13.181,19.8 -13.181,31.819c0,12.02 4.681,23.32 13.181,31.82c8.143,8.144 18.658,12.501 29.341,13.085c0.584,10.684 4.942,21.198 13.085,29.342c8.138,8.139 18.641,12.494 29.318,13.083c0.598,11.088 5.196,21.43 13.109,29.343c8.143,8.144 18.657,12.501 29.341,13.085c0.584,10.684 4.941,21.198 13.085,29.341c14.118,14.118 34.848,16.643 51.228,8.801l12.412,12.412c17.584,17.585 46.052,17.589 63.639,0c7.913,-7.913 12.511,-18.254 13.109,-29.343c10.676,-0.59 21.181,-4.946 29.318,-13.083c8.137,-8.137 12.494,-18.642 13.083,-29.317c11.089,-0.598 21.43,-5.196 29.343,-13.109c7.913,-7.913 12.511,-18.254 13.109,-29.343c10.676,-0.589 21.18,-4.946 29.317,-13.083c17.545,-17.545 17.545,-46.094 0,-63.639l-11.9,-11.9c11.927,-19.934 9.194,-41.002 16.371,-56.8c9.156,-20.154 34.741,-37.552 52.316,-56.166c5.572,-5.901 5.439,-15.165 -0.299,-20.904C479.016,110.675 435.386,58.045 407.65,30.31zM90.604,285.148c17.047,-17.047 1.738,-1.738 21.213,-21.213c5.847,-5.847 15.363,-5.85 21.213,0c5.849,5.849 5.849,15.365 0,21.214l-21.213,21.213c-5.849,5.849 -15.365,5.849 -21.214,0C84.755,300.513 84.755,290.997 90.604,285.148zM133.03,327.574l51.213,-51.213c5.848,-5.847 15.364,-5.849 21.213,0c5.849,5.849 5.849,15.365 0,21.213l-51.213,51.213c-5.849,5.849 -15.365,5.849 -21.213,0C127.182,342.94 127.182,333.423 133.03,327.574zM175.457,370.001l51.214,-51.213c5.861,-5.861 15.349,-5.863 21.213,0c5.848,5.849 5.848,15.365 0,21.213l-51.213,51.213c-5.849,5.848 -15.365,5.847 -21.213,0C169.595,385.352 169.594,375.865 175.457,370.001zM217.883,433.641c-5.848,-5.849 -5.848,-15.365 0,-21.213l21.213,-21.213c5.848,-5.847 15.361,-5.849 21.211,-0.002c0.001,0 0.002,0.001 0.002,0.002c5.856,5.862 5.862,15.35 0,21.213l-21.214,21.213C233.233,439.503 223.746,439.503 217.883,433.641zM302.735,454.854c-5.861,5.861 -15.349,5.863 -21.213,0l-10.607,-10.607l10.607,-10.606c3.67,-3.67 6.625,-7.865 8.801,-12.412l12.412,12.412C308.598,439.504 308.599,448.991 302.735,454.854zM430.015,327.575c-5.849,5.849 -15.365,5.848 -21.213,0l-42.646,-42.646c-5.857,-5.858 -15.355,-5.858 -21.213,0c-5.858,5.858 -5.858,15.355 0,21.213l42.646,42.646c5.848,5.849 5.848,15.365 0,21.213c-5.861,5.86 -15.344,5.864 -21.21,0.003c-0.001,-0.001 -0.002,-0.002 -0.003,-0.003c-0.002,-0.001 -0.003,-0.003 -0.005,-0.004l-41.704,-41.704c-5.857,-5.858 -15.355,-5.858 -21.213,0c-5.858,5.858 -5.858,15.355 0,21.213l41.708,41.708c5.849,5.849 5.849,15.365 0,21.213c-5.849,5.849 -15.364,5.849 -21.214,0l-42.426,-42.427c-3.718,-3.718 -7.934,-6.64 -12.431,-8.782c17.545,-17.545 17.55,-46.099 0.005,-63.644c-7.913,-7.913 -18.254,-12.511 -29.343,-13.108c-0.589,-10.676 -4.946,-21.181 -13.083,-29.318c-17.587,-17.587 -46.051,-17.589 -63.64,0c-2.142,-4.497 -5.069,-8.709 -8.787,-12.427c-16.568,-16.566 -42.941,-17.481 -60.602,-2.761c-4.095,-12.391 -3.903,-28.671 -11.11,-45.014c-8.656,-19.627 -25.706,-34.218 -40.748,-47.091c-1.742,-1.49 -3.455,-2.957 -5.126,-4.405c20.5,-20.501 64.146,-64.147 84.341,-84.343c8.019,8.141 15.856,16.178 24.05,24.371c22.841,22.841 44.455,21.975 63.517,21.21c7.239,-0.29 14.295,-0.568 21.675,0.401c-4.288,2.991 -8.424,6.414 -12.357,10.353l-27.427,27.426c-17.545,17.545 -17.544,46.094 0,63.639c17.585,17.585 46.052,17.589 63.64,0l27.426,-27.426c5.864,-5.863 15.35,-5.863 21.213,0l127.279,127.279C435.863,312.21 435.863,321.726 430.015,327.575zM428.385,204.04c-7.744,17.046 -7.3,33.946 -11.601,46.665l-45.665,-45.665c13.198,-2.069 25.939,-7.662 36.73,-16.754c6.335,-5.338 7.144,-14.801 1.806,-21.136c-5.337,-6.335 -14.801,-7.144 -21.136,-1.806c-15.497,13.058 -37.674,14.142 -54.31,2.786l-10.259,-10.259c-17.587,-17.587 -46.051,-17.589 -63.64,0l-27.426,27.426c-5.862,5.861 -15.35,5.863 -21.213,0c-5.848,-5.849 -5.849,-15.365 0,-21.213l27.435,-27.434c17.487,-17.512 42.709,-20.995 67.044,-23.061c42.152,-3.579 66.196,-26.376 90.769,-51.223c23.877,25.371 53.737,60.645 79.009,87.329C458.841,165.423 438.441,181.905 428.385,204.04z"/>
|
android:height="24dp"
|
||||||
|
android:viewportWidth="512.0023"
|
||||||
|
android:viewportHeight="512">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m507.527,171.598 l-129.145,-127.281c-5.871,-5.785 -15.309,-5.75 -21.137,0.078l-50.031,50.234c-14.863,0 -87.586,0 -102.426,0l-50.035,-50.234c-5.828,-5.828 -15.266,-5.863 -21.137,-0.078l-129.145,127.281c-2.879,2.836 -4.492,6.715 -4.473,10.754 0.02,4.043 1.668,7.902 4.574,10.711l51.723,50.004v6.367c0,18.172 5.574,35.473 15.875,50 -14.156,17.613 -13.156,43.484 3.305,59.945 7.91,7.91 18.25,12.516 29.336,13.113 0.59,10.676 4.953,21.176 13.09,29.313 8.141,8.145 18.656,12.5 29.34,13.086 0.586,10.684 4.941,21.195 13.086,29.34 15.988,15.988 41.223,17.477 58.938,4.082l10.965,10.965c8.816,8.82 20.398,13.227 31.984,13.227 11.582,0 23.168,-4.41 31.984,-13.227 4.074,-4.074 7.191,-8.762 9.375,-13.777 17.293,9.852 39.539,7.289 54.102,-7.27 8.141,-8.145 12.5,-18.656 13.082,-29.344 10.684,-0.582 21.199,-4.941 29.344,-13.082 7.91,-7.914 12.508,-18.258 13.109,-29.344 10.676,-0.59 21.18,-4.945 29.316,-13.082 8.5,-8.5 13.18,-19.801 13.18,-31.82 0,-10.492 -3.566,-20.434 -10.125,-28.441 6.586,-10.449 10.125,-22.547 10.125,-35.199v-14.852l51.723,-50.004c2.902,-2.809 4.555,-6.668 4.574,-10.711 0.016,-4.039 -1.598,-7.918 -4.477,-10.754zM36.473,182.176 L144.07,76.137 187.969,120.035c2.813,2.813 6.625,4.391 10.605,4.391h45.777l74.797,74.797c5.859,5.859 5.863,15.348 0,21.207 -5.848,5.848 -15.363,5.848 -21.211,0l-29.922,-29.918c-23.77,-23.77 -62.441,-24.324 -86.813,-0.477l-31.621,-31.621c-5.855,-5.859 -15.355,-5.859 -21.211,0 -5.859,5.859 -5.859,15.355 0,21.215l31.605,31.605 -66.262,66.262c-4.832,-8.457 -7.422,-18.059 -7.422,-28.063 0,-12.715 1.043,-18.082 -4.574,-23.512zM272.984,438.066c-5.938,5.938 -15.602,5.938 -21.543,0l-10.652,-10.656 21.711,-21.711c11.164,11.52 3.719,4.715 12.754,13.75 3.5,5.855 2.742,13.605 -2.27,18.617zM336.461,417.02c-5.852,5.848 -15.367,5.848 -21.215,0 -26.789,-26.789 2.703,2.785 -23.609,-24.363 -3.293,-5.715 -2.531,-13.137 2.395,-18.063 5.848,-5.848 15.367,-5.852 21.215,0l21.215,21.211c5.848,5.848 5.848,15.367 0,21.215zM378.887,374.594c-5.848,5.848 -15.367,5.848 -21.215,0l-42.426,-42.43c-5.863,-5.863 -5.863,-15.348 0,-21.211 5.848,-5.848 15.363,-5.848 21.215,0l42.426,42.426c5.863,5.863 5.863,15.352 0,21.215zM421.313,332.164c-5.848,5.848 -15.363,5.852 -21.215,0l-21.211,-21.211c-5.863,-5.863 -5.863,-15.352 0,-21.215 5.848,-5.848 15.363,-5.848 21.215,0 5.148,5.148 15.883,15.887 21.211,21.215 5.848,5.848 5.848,15.363 0,21.211zM430.281,225.922c-2.926,2.828 -4.574,6.719 -4.574,10.785v21.211c0,4.41 -0.793,8.699 -2.293,12.711l-2.102,-2.102c-17.543,-17.547 -46.094,-17.547 -63.641,0 -4.082,4.082 -7.273,8.816 -9.5,13.965 -17.18,-9.809 -39.492,-7.398 -54.141,7.246 -14.797,14.797 -17.035,37.117 -7.246,54.168 -6.527,2.813 -13.055,8.137 -14.18,9.258 -10.863,10.863 -59.469,59.469 -69.852,69.855 -5.852,5.848 -15.367,5.848 -21.215,0 -5.848,-5.852 -5.848,-15.363 0,-21.215 3.738,-3.738 37.105,-37.102 42.426,-42.426 5.859,-5.859 5.859,-15.355 0,-21.215 -5.855,-5.859 -15.355,-5.859 -21.211,0 -5.332,5.332 -38.07,38.07 -42.426,42.426 -5.848,5.852 -15.363,5.852 -21.215,0 -5.848,-5.848 -5.848,-15.363 0,-21.211l42.43,-42.43c5.855,-5.855 5.855,-15.355 0,-21.211 -5.859,-5.859 -15.359,-5.859 -21.215,0l-42.426,42.426c-5.863,5.863 -15.352,5.863 -21.215,0 -5.863,-5.863 -5.863,-15.348 0,-21.211 12.488,-12.488 92.789,-92.789 105.23,-105.23 12.402,-12.402 32.48,-12.406 44.887,0l29.922,29.922c17.563,17.559 46.105,17.527 63.637,0 8.496,-8.5 13.18,-19.797 13.18,-31.816s-4.684,-23.32 -13.18,-31.82l-53.586,-53.582h26.652c3.977,0 7.793,-1.582 10.605,-4.395l43.895,-43.895 107.598,106.039zM430.281,225.922"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,8 +1,18 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="384"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="384" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M368,80h-48V16c0,-8.832 -7.168,-16 -16,-16H48C21.528,0 0,21.528 0,48v288c0,26.472 21.528,48 48,48h288c26.472,0 48,-21.528 48,-48V96C384,87.168 376.832,80 368,80zM48,352c-8.824,0 -16,-7.176 -16,-16V48c0,-8.824 7.176,-16 16,-16h240v64v240c0,5.616 1.024,10.984 2.8,16H48zM352,336c0,8.824 -7.176,16 -16,16c-8.824,0 -16,-7.176 -16,-16V112h32V336z"/>
|
android:height="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M240,80H80c-8.832,0 -16,7.168 -16,16c0,8.832 7.168,16 16,16h160c8.832,0 16,-7.168 16,-16C256,87.168 248.832,80 240,80z"/>
|
android:viewportWidth="512"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M208,176H80c-8.832,0 -16,7.168 -16,16c0,8.832 7.168,16 16,16h128c8.832,0 16,-7.168 16,-16C224,183.168 216.832,176 208,176z"/>
|
android:viewportHeight="512">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M192,224H80c-8.832,0 -16,7.168 -16,16c0,8.832 7.168,16 16,16h112c8.832,0 16,-7.168 16,-16C208,231.168 200.832,224 192,224z"/>
|
<path
|
||||||
<path android:fillColor="#FF000000" android:pathData="M176,272H80c-8.832,0 -16,7.168 -16,16c0,8.832 7.168,16 16,16h96c8.832,0 16,-7.168 16,-16C192,279.168 184.832,272 176,272z"/>
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m171.102,100.332h170.664v30h-170.664zM171.102,100.332"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m171.102,175h96v30h-96zM171.102,175"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m171.102,324.332h30v30h-30zM171.102,324.332"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m506.867,91.09v-33.438c0,-31.789 -25.863,-57.652 -57.652,-57.652h-300.43c-31.68,0 -57.453,25.773 -57.453,57.453l-0.023,363.457h-85.309v33.438c0,31.789 25.863,57.652 57.652,57.652h300.43c9.898,0 19.223,-2.516 27.363,-6.945 17.906,-9.742 30.09,-28.73 30.09,-50.508l0.012,-145.172 42.77,-42.77c29.008,-29.004 44.449,-69.137 42.363,-110.109l-1.789,-35.188 -35.184,-1.789c-16.406,-0.832 -32.672,1.148 -48.148,5.68l0.004,-34.109zM476.867,57.652v3.438h-55.305v-3.438c0,-15.246 12.406,-27.652 27.652,-27.652 15.25,0 27.652,12.406 27.652,27.652zM36,454.348v-3.438h270.23v3.438c0,10.016 2.566,19.438 7.078,27.652h-249.656c-15.25,0 -27.652,-12.406 -27.652,-27.652zM468.184,149.484 L476.309,149.898 476.719,158.02c1.652,32.512 -10.602,64.355 -33.617,87.375l-8.801,8.801 -16.063,-16.063 -21.215,21.215 16.063,16.059 -48.844,48.844h-41.078l43.691,-43.691 -21.215,-21.211 -43.691,43.688v-41.078l71.473,-71.469 16.059,16.059 21.215,-21.211 -14.871,-14.871c20.941,-14.77 46.438,-22.301 72.359,-20.98zM359.598,161.887 L271.953,249.531v0.133h-100.852v30h100.852v53.375l-40.859,40.859 21.211,21.215 40.859,-40.863h83.508l14.871,-14.871 -0.008,115.004v0.02,0.004c-0.031,15.215 -12.43,27.594 -27.652,27.594 -15.246,0 -27.652,-12.406 -27.652,-27.652v-33.438h-214.922l0.023,-363.457c0,-15.137 12.316,-27.453 27.453,-27.453h249.773c-4.457,8.164 -6.996,17.516 -6.996,27.453l-0.004,80.316c-11.617,6.473 -22.398,14.551 -31.961,24.117zM359.598,161.887"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="512"
|
||||||
|
android:viewportHeight="512">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m112.516,95.313c-4.625,0 -8.973,1.801 -12.25,5.074 -6.75,6.754 -6.746,17.742 0.004,24.492 3.273,3.273 7.621,5.074 12.246,5.074s8.977,-1.801 12.25,-5.074c6.75,-6.75 6.75,-17.738 -0.004,-24.496 -3.273,-3.27 -7.621,-5.07 -12.246,-5.07zM112.516,95.313"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m444.926,172.789 l67.02,-172.789 -172.789,67.02 -79.016,79.016 -145.922,-145.918 -114.219,114.219 145.922,145.922 -107.891,107.891 -24.281,24.277c-8.758,8.762 -13.586,20.41 -13.586,32.801 0,12.391 4.828,24.035 13.586,32.801l40.168,40.168c9.043,9.043 20.922,13.563 32.801,13.563s23.758,-4.52 32.801,-13.563l132.172,-132.172 145.973,145.977 114.219,-114.219 -145.973,-145.977zM122.723,410.43 L389.809,143.344 410.883,164.418 143.797,431.504zM426.426,137.551 L374.395,85.52 459.398,52.551zM146.121,218.047 L173.922,190.246 152.715,169.039 124.914,196.84 42.414,114.336 114.219,42.527 238.934,167.242 167.129,239.051zM347.527,101.063 L368.602,122.137 101.52,389.223 80.441,368.148zM98.316,476.988c-3.098,3.098 -7.215,4.801 -11.598,4.801 -4.379,0 -8.496,-1.703 -11.594,-4.801l-40.168,-40.168c-3.094,-3.098 -4.801,-7.215 -4.801,-11.594 0,-4.379 1.707,-8.5 4.801,-11.594l24.281,-24.281 63.355,63.359zM469.473,397.781 L397.664,469.59 357.527,429.453 385.328,401.652 364.121,380.445 336.324,408.246 315.246,387.172 343.047,359.371 321.84,338.164 294.039,365.965 272.895,344.82 344.703,273.012zM469.473,397.781"/>
|
||||||
|
</vector>
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="512"
|
|
||||||
android:viewportWidth="512.00037" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<path android:fillColor="#FF000000" android:pathData="m484.887,62.008 l-34.895,-34.895c-17.484,-17.484 -40.73,-27.113 -65.461,-27.113 -24.727,0 -47.973,9.629 -65.457,27.113l-282.547,282.547c-2.156,2.156 -3.605,4.922 -4.152,7.922l-32.133,176.734c-0.879,4.844 0.672,9.809 4.152,13.289 2.836,2.84 6.664,4.395 10.605,4.395 0.891,0 1.789,-0.078 2.684,-0.242l176.734,-32.133c3,-0.543 5.766,-1.992 7.922,-4.152l282.547,-282.547c17.484,-17.484 27.113,-40.73 27.113,-65.461 0,-24.727 -9.629,-47.973 -27.113,-65.457zM459.719,79.266 L172.625,366.359c-7.891,-10.027 -16.953,-19.094 -26.984,-26.984l287.094,-287.094zM50.195,387.273 L59.543,335.863c61.578,5.879 110.715,55.02 116.594,116.594l-51.41,9.348c-7.195,-37.621 -36.91,-67.336 -74.531,-74.531zM340.289,48.328c11.816,-11.82 27.527,-18.328 44.246,-18.328 8.188,0 16.133,1.57 23.5,4.555l-288.238,288.234c-12.43,-6.383 -25.805,-11.176 -39.848,-14.125zM44.828,416.801c25.371,4.969 45.402,25 50.371,50.371l-61.566,11.195zM463.676,171.715 L203.336,432.051c-2.949,-14.043 -7.742,-27.418 -14.125,-39.848l288.234,-288.234c2.984,7.367 4.555,15.313 4.555,23.5 0,16.715 -6.508,32.426 -18.324,44.246zM463.676,171.715"/>
|
|
||||||
</vector>
|
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="502.16888"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="502" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="502"
|
||||||
|
android:viewportHeight="502.16888">
|
||||||
<path android:fillColor="#FF000000" android:pathData="m251.047,187.023c-35.332,0 -63.98,28.645 -63.98,63.98 0,35.328 28.648,63.977 63.98,63.977 35.336,0 63.977,-28.648 63.977,-63.977 -0.039,-35.32 -28.656,-63.941 -63.977,-63.98zM251.047,272.328c-11.777,0 -21.324,-9.547 -21.324,-21.324 0,-11.781 9.547,-21.332 21.324,-21.332 11.781,0 21.328,9.551 21.328,21.332 -0.016,11.77 -9.555,21.309 -21.328,21.324zM251.047,272.328"/>
|
<path android:fillColor="#FF000000" android:pathData="m251.047,187.023c-35.332,0 -63.98,28.645 -63.98,63.98 0,35.328 28.648,63.977 63.98,63.977 35.336,0 63.977,-28.648 63.977,-63.977 -0.039,-35.32 -28.656,-63.941 -63.977,-63.98zM251.047,272.328c-11.777,0 -21.324,-9.547 -21.324,-21.324 0,-11.781 9.547,-21.332 21.324,-21.332 11.781,0 21.328,9.551 21.328,21.332 -0.016,11.77 -9.555,21.309 -21.328,21.324zM251.047,272.328"/>
|
||||||
<path android:fillColor="#FF000000" android:pathData="m479.391,22.656c-29.367,-29.363 -81.313,-30.211 -146.262,-2.379 -28.801,12.684 -56.289,28.152 -82.082,46.18 -25.789,-18.027 -53.281,-33.496 -82.078,-46.18 -64.945,-27.832 -116.895,-26.988 -146.262,2.379 -42.605,42.609 -22.988,131.824 43.52,228.348 -66.508,96.52 -86.125,185.734 -43.52,228.34 15.098,15.098 36.16,22.656 61.891,22.656 24.32,0 52.816,-6.758 84.371,-20.277 28.797,-12.684 56.289,-28.152 82.078,-46.18 25.793,18.027 53.281,33.496 82.082,46.18 31.559,13.52 60.047,20.277 84.367,20.277 25.723,0 46.797,-7.559 61.895,-22.66 42.598,-42.602 22.984,-131.82 -43.523,-228.34 66.512,-96.52 86.125,-185.734 43.523,-228.344zM349.93,59.484c26.199,-11.23 49.438,-16.918 67.543,-16.918 13.977,0 24.898,3.395 31.758,10.254 22.68,22.68 7.504,86.875 -40.656,161.488 -17.852,-22.27 -36.93,-43.539 -57.141,-63.691 -20.242,-20.27 -41.625,-39.371 -64.035,-57.219 19.848,-13.047 40.766,-24.395 62.531,-33.914zM382.754,251.004c-18.891,24.762 -39.43,48.223 -61.48,70.219 -22.02,22.086 -45.48,42.688 -70.227,61.664 -24.742,-18.977 -48.203,-39.578 -70.223,-61.664 -22.051,-21.996 -42.59,-45.457 -61.48,-70.219 18.891,-24.77 39.43,-48.23 61.48,-70.227 22.02,-22.082 45.48,-42.688 70.223,-61.664 24.746,18.977 48.207,39.582 70.227,61.664 22.051,21.996 42.59,45.457 61.48,70.227zM52.867,52.82c6.855,-6.859 17.77,-10.254 31.758,-10.254 18.102,0 41.344,5.688 67.539,16.918 21.77,9.52 42.688,20.863 62.539,33.914 -22.414,17.844 -43.793,36.945 -64.039,57.215 -20.215,20.156 -39.289,41.422 -57.141,63.695 -48.16,-74.613 -63.336,-138.809 -40.656,-161.488zM152.164,442.516c-46.441,19.906 -83.563,22.395 -99.297,6.664 -22.68,-22.68 -7.508,-86.875 40.652,-161.488 17.855,22.27 36.93,43.539 57.145,63.691 20.242,20.27 41.621,39.371 64.035,57.219 -19.848,13.047 -40.766,24.395 -62.535,33.914zM449.23,449.18c-15.73,15.73 -52.855,13.242 -99.301,-6.664 -21.766,-9.52 -42.684,-20.863 -62.531,-33.914 22.41,-17.844 43.793,-36.945 64.035,-57.215 20.211,-20.156 39.289,-41.422 57.141,-63.695 48.16,74.613 63.336,138.809 40.656,161.488zM449.23,449.18"/>
|
<path android:fillColor="#FF000000" android:pathData="m479.391,22.656c-29.367,-29.363 -81.313,-30.211 -146.262,-2.379 -28.801,12.684 -56.289,28.152 -82.082,46.18 -25.789,-18.027 -53.281,-33.496 -82.078,-46.18 -64.945,-27.832 -116.895,-26.988 -146.262,2.379 -42.605,42.609 -22.988,131.824 43.52,228.348 -66.508,96.52 -86.125,185.734 -43.52,228.34 15.098,15.098 36.16,22.656 61.891,22.656 24.32,0 52.816,-6.758 84.371,-20.277 28.797,-12.684 56.289,-28.152 82.078,-46.18 25.793,18.027 53.281,33.496 82.082,46.18 31.559,13.52 60.047,20.277 84.367,20.277 25.723,0 46.797,-7.559 61.895,-22.66 42.598,-42.602 22.984,-131.82 -43.523,-228.34 66.512,-96.52 86.125,-185.734 43.523,-228.344zM349.93,59.484c26.199,-11.23 49.438,-16.918 67.543,-16.918 13.977,0 24.898,3.395 31.758,10.254 22.68,22.68 7.504,86.875 -40.656,161.488 -17.852,-22.27 -36.93,-43.539 -57.141,-63.691 -20.242,-20.27 -41.625,-39.371 -64.035,-57.219 19.848,-13.047 40.766,-24.395 62.531,-33.914zM382.754,251.004c-18.891,24.762 -39.43,48.223 -61.48,70.219 -22.02,22.086 -45.48,42.688 -70.227,61.664 -24.742,-18.977 -48.203,-39.578 -70.223,-61.664 -22.051,-21.996 -42.59,-45.457 -61.48,-70.219 18.891,-24.77 39.43,-48.23 61.48,-70.227 22.02,-22.082 45.48,-42.688 70.223,-61.664 24.746,18.977 48.207,39.582 70.227,61.664 22.051,21.996 42.59,45.457 61.48,70.227zM52.867,52.82c6.855,-6.859 17.77,-10.254 31.758,-10.254 18.102,0 41.344,5.688 67.539,16.918 21.77,9.52 42.688,20.863 62.539,33.914 -22.414,17.844 -43.793,36.945 -64.039,57.215 -20.215,20.156 -39.289,41.422 -57.141,63.695 -48.16,-74.613 -63.336,-138.809 -40.656,-161.488zM152.164,442.516c-46.441,19.906 -83.563,22.395 -99.297,6.664 -22.68,-22.68 -7.508,-86.875 40.652,-161.488 17.855,22.27 36.93,43.539 57.145,63.691 20.242,20.27 41.621,39.371 64.035,57.219 -19.848,13.047 -40.766,24.395 -62.535,33.914zM449.23,449.18c-15.73,15.73 -52.855,13.242 -99.301,-6.664 -21.766,-9.52 -42.684,-20.863 -62.531,-33.914 22.41,-17.844 43.793,-36.945 64.035,-57.215 20.211,-20.156 39.289,-41.422 57.141,-63.695 48.16,74.613 63.336,138.809 40.656,161.488zM449.23,449.18"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,4 +1,15 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="512"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="512" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M365,95l-18,24l34,25.5V202h-40v-37c0,-21.975 -12.959,-40.973 -31.632,-49.775C319.73,103.016 326,87.231 326,70c0,-38.598 -31.401,-70 -70,-70s-70,31.402 -70,70c0,17.231 6.27,33.016 16.632,45.225C183.959,124.027 171,143.025 171,165v37h-40v-57.5l34,-25.5l-18,-24l-46,34.5V322h60v190h190V322h60V129.5L365,95zM256,30c22.056,0 40,17.944 40,40s-17.944,40 -40,40s-40,-17.944 -40,-40S233.944,30 256,30zM201,165c0,-13.785 11.215,-25 25,-25h60c13.785,0 25,11.215 25,25v37H201V165zM321,482H191V292h130V482zM381,292h-30v-30H161v30h-30v-60h250V292z"/>
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m12,6c1.654,0 3,-1.346 3,-3s-1.346,-3 -3,-3 -3,1.346 -3,3 1.346,3 3,3zM12,1.5c0.827,0 1.5,0.673 1.5,1.5s-0.673,1.5 -1.5,1.5 -1.5,-0.673 -1.5,-1.5 0.673,-1.5 1.5,-1.5z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m15.846,13.294c-0.143,-0.186 -0.363,-0.294 -0.596,-0.294h-6.5c-0.233,0 -0.453,0.108 -0.596,0.294 -0.142,0.185 -0.189,0.426 -0.129,0.651l1.75,6.5c0.089,0.327 0.386,0.555 0.725,0.555h3c0.339,0 0.636,-0.228 0.725,-0.555l1.75,-6.5c0.06,-0.225 0.012,-0.466 -0.129,-0.651zM12.925,19.5h-1.85l-1.347,-5h4.543z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m3,23.25c0,0.414 0.336,0.75 0.75,0.75h4.25,8 4.25c0.414,0 0.75,-0.336 0.75,-0.75s-0.336,-0.75 -0.75,-0.75h-3.28l3.006,-11.561c0.059,-0.225 0.01,-0.464 -0.132,-0.648 -0.143,-0.184 -0.362,-0.291 -0.594,-0.291h-2.25v-0.03c0,-1.637 -1.278,-2.97 -2.85,-2.97h-4.3c-1.572,0 -2.85,1.333 -2.85,2.97v0.03h-2.25c-0.232,0 -0.451,0.107 -0.594,0.291 -0.142,0.184 -0.19,0.423 -0.132,0.648l3.006,11.561h-3.28c-0.414,0 -0.75,0.336 -0.75,0.75zM8.5,9.97c0,-0.81 0.605,-1.47 1.35,-1.47h4.301c0.744,0 1.35,0.66 1.35,1.47v0.03h-7v-0.03zM5.72,11.5h12.56l-2.86,11h-6.84z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
<vector android:height="24dp" android:viewportHeight="512"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="512" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m48.965,187.48c-5.523,0 -10,4.477 -10,10v16.535c0,5.52 4.477,10 10,10 5.52,0 10,-4.48 10,-10v-16.535c0,-5.523 -4.48,-10 -10,-10zM48.965,187.48"/>
|
android:height="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m462.367,224.016c5.523,0 10,-4.48 10,-10v-16.535c0,-5.523 -4.477,-10 -10,-10 -5.523,0 -10,4.477 -10,10v16.535c0,5.52 4.477,10 10,10zM462.367,224.016"/>
|
android:viewportWidth="512"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m246.77,262.328c1.598,3.902 5.668,6.449 9.883,6.16 4.121,-0.285 7.699,-3.133 8.91,-7.078 1.207,-3.934 -0.223,-8.324 -3.477,-10.832 -3.398,-2.617 -8.25,-2.738 -11.773,-0.293 -3.816,2.652 -5.336,7.746 -3.543,12.043zM246.77,262.328"/>
|
android:viewportHeight="512">
|
||||||
<path android:fillColor="#FF000000" android:pathData="m502,153.496h-1.004v-7.691c0,-5.523 -4.477,-10 -10,-10 -5.523,0 -10,4.477 -10,10v7.691h-8.629v-7.691c0,-5.523 -4.477,-10 -10,-10 -5.523,0 -10,4.477 -10,10v7.691h-8.629v-7.691c0,-5.523 -4.477,-10 -10,-10 -5.52,0 -10,4.477 -10,10v7.719c-5.266,0.285 -9.449,4.633 -9.449,9.973v44.723h-16.824v-167.219c0,-5.523 -4.48,-10 -10,-10h-43.898c-5.523,0 -10,4.477 -10,10v13.379h-9.094v-13.379c0,-5.523 -4.48,-10 -10,-10h-43.902c-5.52,0 -10,4.477 -10,10v13.379h-9.09v-13.379c0,-5.523 -4.477,-10 -10,-10h-43.902c-5.523,0 -10,4.477 -10,10v13.379h-9.094v-13.379c0,-5.523 -4.477,-10 -10,-10h-43.898c-5.523,0 -10,4.477 -10,10v167.219h-17.336v-44.727c0,-5.406 -4.297,-9.801 -9.656,-9.98v-7.711c0,-5.52 -4.48,-10 -10,-10 -5.523,0 -10,4.48 -10,10v7.691h-8.629v-7.691c0,-5.52 -4.477,-10 -10,-10 -5.523,0 -10,4.48 -10,10v7.691h-8.629v-7.691c0,-5.52 -4.477,-10 -10,-10 -5.523,0 -10,4.48 -10,10v7.691h-0.336c-5.523,0 -10,4.48 -10,10v238.5c0,5.52 4.477,10 10,10h3.563v49.789h-3.563c-5.523,0 -10,4.48 -10,10 0,5.523 4.477,10 10,10h492c5.523,0 10,-4.477 10,-10 0,-5.52 -4.477,-10 -10,-10h-7.234v-49.789h7.234c5.523,0 10,-4.48 10,-10v-238.496c0,-5.523 -4.477,-10 -10,-10zM134.586,51h23.898v13.379c0,5.523 4.48,10 10,10h29.094c5.523,0 10,-4.477 10,-10v-13.379h23.902v13.379c0,5.523 4.477,10 10,10h29.09c5.523,0 10,-4.477 10,-10v-13.379h23.902v13.379c0,5.523 4.477,10 10,10h29.094c5.52,0 10,-4.477 10,-10v-13.379h23.898v157.219h-242.879zM424.289,228.219c5.52,0 10,-4.48 10,-10v-44.727h57.711v75.016h-197.051c-5.52,0 -10,4.48 -10,10 0,5.523 4.48,10 10,10h197.051v20.918h-472v-20.918h197.031c5.523,0 10,-4.477 10,-10 0,-5.52 -4.477,-10 -10,-10h-197.031v-75.016h57.25v44.727c0,5.52 4.477,10 10,10zM492,391.992h-13.48v-6.914c0,-22.313 -18.156,-40.461 -40.473,-40.461 -22.313,0 -40.461,18.148 -40.461,40.461v6.914h-10.461v-6.914c0,-22.313 -18.152,-40.461 -40.461,-40.461 -22.313,0 -40.461,18.148 -40.461,40.461v6.914h-10.465v-28.285c0,-22.309 -18.152,-40.461 -40.469,-40.461 -22.313,0 -40.461,18.152 -40.461,40.461v28.285h-10.461v-6.914c0,-22.313 -18.152,-40.461 -40.461,-40.461 -22.313,0 -40.461,18.148 -40.461,40.461v6.914h-10.461v-6.914c0,-22.313 -18.152,-40.461 -40.461,-40.461 -22.316,0 -40.473,18.148 -40.473,40.461v6.914h-12.031v-82.563h90.043v29.266c0,5.523 4.477,10 10,10 5.523,0 10,-4.477 10,-10v-29.266h69.16v15.586c0,5.52 4.477,10 10,10s10,-4.48 10,-10v-15.586h71.805v15.586c0,5.52 4.48,10 10,10 5.523,0 10,-4.48 10,-10v-15.586h71.453v29.266c0,5.523 4.477,10 10,10 5.52,0 10,-4.477 10,-10v-29.266h89.539zM133.426,411.992c5.52,0 10,-4.48 10,-10v-16.914c0,-11.281 9.176,-20.461 20.461,-20.461 11.281,0 20.461,9.18 20.461,20.461v16.914c0,5.52 4.477,10 10,10h4.855v49.789h-71.809v-49.789zM219.203,411.992h5.605c5.523,0 10,-4.48 10,-10v-38.285c0,-11.281 9.18,-20.461 20.461,-20.461 11.285,0 20.469,9.18 20.469,20.461v38.285c0,5.52 4.48,10 10,10h5.27v49.789h-71.805zM311.008,411.992h5.195c5.52,0 10,-4.48 10,-10v-16.914c0,-11.281 9.18,-20.461 20.461,-20.461s20.461,9.18 20.461,20.461v16.914c0,5.52 4.477,10 10,10h5.336v49.789h-71.453zM33.563,411.992h8.469c5.523,0 10,-4.48 10,-10v-16.914c0,-11.281 9.184,-20.461 20.469,-20.461s20.461,9.18 20.461,20.461v16.914c0,5.52 4.477,10 10,10h4.434v49.789h-73.832zM474.766,461.781h-72.305v-49.789h5.125c5.523,0 10,-4.48 10,-10v-16.914c0,-11.281 9.18,-20.461 20.461,-20.461 11.289,0 20.473,9.18 20.473,20.461v16.914c0,5.52 4.477,10 10,10h6.246zM474.766,461.781"/>
|
<path
|
||||||
<path android:fillColor="#FF000000" android:pathData="m169.746,123.281c5.523,0 10,-4.477 10,-10v-10.195c0,-5.523 -4.477,-10 -10,-10 -5.523,0 -10,4.477 -10,10v10.195c0,5.523 4.477,10 10,10zM169.746,123.281"/>
|
android:fillColor="#FF000000"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m213.535,123.281c5.523,0 10,-4.477 10,-10v-10.195c0,-5.523 -4.477,-10 -10,-10 -5.523,0 -10,4.477 -10,10v10.195c0,5.523 4.477,10 10,10zM213.535,123.281"/>
|
android:pathData="M460.995,413.138c-0.099,-79.172 -3.234,-153.534 -8.857,-209.763c-2.821,-28.208 -6.14,-50.499 -9.864,-66.251c-2.138,-9.042 -5.64,-23.813 -14.516,-30.971C432.746,102.516 436,96.645 436,90c0,-11.046 -8.954,-20 -20,-20c-11.046,0 -20,8.954 -20,20c0,6.671 3.279,12.563 8.299,16.196c-7.514,6.097 -10.809,17.24 -12.324,22.377c-3.21,10.886 -6.178,26.444 -8.819,46.242c-4.986,37.369 -8.635,87.756 -10.59,146.068c-0.918,1.003 -1.765,2.08 -2.518,3.237c-1.453,-69.543 -4.528,-132.812 -8.91,-182.051c-2.755,-30.95 -5.927,-55.29 -9.428,-72.343c-2.138,-10.417 -5.347,-26.005 -14.106,-33.457C342.68,32.642 346,26.715 346,20c0,-11.046 -8.954,-20 -20,-20c-11.046,0 -20,8.954 -20,20c0,6.718 3.323,12.648 8.404,16.274c-8.299,7.064 -11.447,21.268 -13.378,29.998c-3.321,15.017 -6.368,36.539 -9.058,63.97c-2.737,27.906 -5.038,61.425 -6.814,98.65L271,218.434v-29.235c3.103,-3.523 5,-8.134 5,-13.198c0,-11.046 -8.954,-20 -20,-20c-11.046,0 -20,8.954 -20,20c0,5.064 1.897,9.675 5,13.198v29.224l-14.183,9.846c-1.777,-37.075 -4.076,-70.455 -6.806,-98.245c-2.689,-27.366 -5.734,-48.836 -9.051,-63.815c-1.929,-8.711 -5.075,-22.882 -13.363,-29.935C202.677,32.646 206,26.717 206,20c0,-11.046 -8.954,-20 -20,-20s-20,8.954 -20,20c0,6.715 3.32,12.642 8.397,16.27c-8.759,7.451 -11.968,23.04 -14.107,33.457c-3.501,17.054 -6.673,41.395 -9.428,72.345c-4.383,49.239 -7.457,112.507 -8.91,182.049c-0.753,-1.158 -1.6,-2.234 -2.518,-3.237c-1.956,-58.312 -5.605,-108.699 -10.59,-146.068c-2.641,-19.798 -5.608,-35.356 -8.819,-46.242c-1.515,-5.137 -4.81,-16.28 -12.324,-22.377C112.721,102.563 116,96.671 116,90c0,-11.046 -8.954,-20 -20,-20s-20,8.954 -20,20c0,6.645 3.254,12.516 8.241,16.153c-8.876,7.157 -12.378,21.928 -14.516,30.971c-3.724,15.753 -7.043,38.043 -9.864,66.251c-5.623,56.229 -8.758,130.59 -8.857,209.763L51,413.147V512h410v-98.853L460.995,413.138zM411.368,191.014c1.572,-13.496 3.15,-24.147 4.633,-32.53c2.434,13.768 5.127,33.656 7.63,62.234c3.43,39.151 5.747,86.36 6.771,136.797l-17.497,-31.813c-2.379,-4.326 -5.937,-7.754 -10.142,-9.998C404.501,267.484 407.456,224.593 411.368,191.014zM270.999,255.735l12.636,9.337c-0.247,6.769 -0.477,13.629 -0.691,20.573l-4.886,-9.161c-1.756,-3.292 -4.186,-6.069 -7.059,-8.226V255.735zM241,254.942v13.316c-2.872,2.156 -5.303,4.935 -7.059,8.227l-4.885,9.159c-0.228,-7.397 -0.474,-14.699 -0.74,-21.897L241,254.942zM88.368,220.719c2.503,-28.578 5.196,-48.467 7.63,-62.234c1.483,8.383 3.062,19.034 4.633,32.53c3.912,33.579 6.866,76.47 8.605,124.69c-4.205,2.244 -7.762,5.672 -10.142,9.998l-17.497,31.813C82.622,307.078 84.939,259.869 88.368,220.719zM161,482h-25v-30h-30v30H81v-61.147l40,-72.728l40,72.728V482zM171.176,377.102c0.71,-81.414 3.65,-158.455 8.299,-217.233c2.171,-27.46 4.427,-47.62 6.522,-62.385c1.762,12.414 3.639,28.64 5.485,49.81c4.516,51.792 7.573,118.195 8.856,192.199l-24.54,46.013L171.176,377.102zM321,482h-20v-30h-30v30h-30v-30h-30v30h-20v-61.25l65,-121.875l65,121.875V482zM336.203,385.505l-24.54,-46.012c1.28,-73.887 4.33,-140.198 8.836,-191.97c1.852,-21.282 3.736,-37.579 5.504,-50.038c2.095,14.765 4.35,34.923 6.522,62.383c4.648,58.778 7.588,135.819 8.3,217.233L336.203,385.505zM431,482h-25v-30h-30v30h-25v-61.147l40,-72.728l40,72.728V482z"/>
|
||||||
<path android:fillColor="#FF000000" android:pathData="m257.32,123.281c5.523,0 10,-4.477 10,-10v-10.195c0,-5.523 -4.477,-10 -10,-10 -5.52,0 -10,4.477 -10,10v10.195c0,5.523 4.48,10 10,10zM257.32,123.281"/>
|
<path
|
||||||
<path android:fillColor="#FF000000" android:pathData="m301.109,123.281c5.523,0 10,-4.477 10,-10v-10.195c0,-5.523 -4.477,-10 -10,-10 -5.52,0 -10,4.477 -10,10v10.195c0,5.523 4.48,10 10,10zM301.109,123.281"/>
|
android:fillColor="#FF000000"
|
||||||
<path android:fillColor="#FF000000" android:pathData="m344.898,93.086c-5.523,0 -10,4.477 -10,10v10.195c0,5.523 4.477,10 10,10 5.523,0 10,-4.477 10,-10v-10.195c0,-5.523 -4.477,-10 -10,-10zM344.898,93.086"/>
|
android:pathData="M256,396m-20,0a20,20 0,1 1,40 0a20,20 0,1 1,-40 0"/>
|
||||||
<path android:fillColor="#FF000000" android:pathData="m344.898,139.938h-175.152c-5.523,0 -10,4.477 -10,10v30.332c0,5.523 4.477,10 10,10h29.094c5.523,0 10,-4.477 10,-10v-20.332h22.637v20.332c0,5.523 4.477,10 10,10h29.094c5.523,0 10,-4.477 10,-10v-20.332h25.234v20.332c0,5.523 4.477,10 10,10h29.094c5.523,0 10,-4.477 10,-10v-30.332c0,-5.523 -4.477,-10 -10,-10zM188.84,170.27h-9.094v-10.332h9.094zM260.57,170.27h-9.094v-10.332h9.094zM334.898,170.27h-9.094v-10.332h9.094zM334.898,170.27"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
Reference in New Issue
Block a user