update copyright

Signed-off-by: androidacy-user <opensource@androidacy.com>
pull/89/head
androidacy-user 2 years ago
parent d0e393c9d6
commit 9bc9f2eb7f

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("UnstableApiUsage", "SpellCheckingInspection") @file:Suppress("UnstableApiUsage", "SpellCheckingInspection")
import com.android.build.api.variant.FilterConfiguration.FilterType.ABI import com.android.build.api.variant.FilterConfiguration.FilterType.ABI

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:ignore="QueryAllPackagesPermission" tools:ignore="QueryAllPackagesPermission"
@ -55,7 +60,7 @@
android:enableOnBackInvokedCallback="true" android:enableOnBackInvokedCallback="true"
android:fullBackupContent="@xml/full_backup_content" android:fullBackupContent="@xml/full_backup_content"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name_v2"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="@bool/lang_support_rtl" android:supportsRtl="@bool/lang_support_rtl"
@ -104,7 +109,7 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
android:label="@string/app_name_short" android:label="@string/app_name_short_v2"
android:launchMode="singleTask" android:launchMode="singleTask"
android:theme="@style/Theme.MagiskModuleManager.NoActionBar" > android:theme="@style/Theme.MagiskModuleManager.NoActionBar" >
<intent-filter> <intent-filter>

@ -1,37 +1,5 @@
## AnyKernel3 (AK3), and AnyKernel2/AnyKernel 2.0 (AK2) Scripts License:
# #
# AnyKernel (versions 2.0/2 and later) Android image modifying scripts. # Copyright (c) 2019-2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
# Copyright (c) 2019 Chris Renshaw (osm0sis @ xda-developers),
# and additional contributors per readily available commit history/credits.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted (subject to the limitations in the disclaimer
# below) provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived from this
# software without specific prior written permission.
#
# NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
# THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# #
if [ -z "$AK3TMPFS" ]; then if [ -z "$AK3TMPFS" ]; then

@ -1,3 +1,7 @@
#
# Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
#
# shellcheck shell=ash # shellcheck shell=ash
################# #################

@ -1,4 +1,8 @@
#!/sbin/sh #!/sbin/sh
#
# Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
#
# This script is only used to test debug builds # This script is only used to test debug builds
umask 022 umask 022

@ -1,5 +1,9 @@
#!/sbin/sh #!/sbin/sh
#
# Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
#
# echo before loading util_functions # echo before loading util_functions
ui_print() { echo "$1"; } ui_print() { echo "$1"; }

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import com.fox2code.mmm.androidacy.AndroidacyRepoData import com.fox2code.mmm.androidacy.AndroidacyRepoData
@ -10,7 +14,6 @@ import java.io.FileInputStream
import java.io.IOException import java.io.IOException
import java.io.InputStream import java.io.InputStream
// See https://docs.github.com/en/rest/reference/repos#releases
@Suppress("unused") @Suppress("unused")
class AppUpdateManager private constructor() { class AppUpdateManager private constructor() {
var changes: String? = null var changes: String? = null
@ -43,7 +46,7 @@ class AppUpdateManager private constructor() {
synchronized(updateLock) { synchronized(updateLock) {
Timber.d("Checking for app updates") Timber.d("Checking for app updates")
if (lastChecked != this.lastChecked) return peekShouldUpdate() if (lastChecked != this.lastChecked) return peekShouldUpdate()
// make a request to https://production-api.androidacy.com/ammm/updates/check with appVersionCode and token/device_id/client_id // make a request to https://production-api.androidacy.com/amm/updates/check with appVersionCode and token/device_id/client_id
var token = AndroidacyRepoData.token var token = AndroidacyRepoData.token
if (!AndroidacyRepoData.getInstance().isValidToken(token)) { if (!AndroidacyRepoData.getInstance().isValidToken(token)) {
Timber.w("Invalid token, not checking for updates") Timber.w("Invalid token, not checking for updates")
@ -51,7 +54,7 @@ class AppUpdateManager private constructor() {
} }
val deviceId = AndroidacyRepoData.generateDeviceId() val deviceId = AndroidacyRepoData.generateDeviceId()
val clientId = BuildConfig.ANDROIDACY_CLIENT_ID val clientId = BuildConfig.ANDROIDACY_CLIENT_ID
val url = "https://production-api.androidacy.com/ammm/updates/check?appVersionCode=${BuildConfig.VERSION_CODE}&token=$token&device_id=$deviceId&client_id=$clientId" val url = "https://production-api.androidacy.com/amm/updates/check?appVersionCode=${BuildConfig.VERSION_CODE}&token=$token&device_id=$deviceId&client_id=$clientId"
val response = doHttpGet(url, false) val response = doHttpGet(url, false)
// convert response to string // convert response to string
val responseString = String(response, Charsets.UTF_8) val responseString = String(response, Charsets.UTF_8)

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
@Suppress("unused") @Suppress("unused")

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import android.annotation.SuppressLint import android.annotation.SuppressLint

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import android.animation.Animator import android.animation.Animator

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import android.annotation.SuppressLint import android.annotation.SuppressLint

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("KotlinConstantConditions", "UNINITIALIZED_ENUM_COMPANION_WARNING", @file:Suppress("KotlinConstantConditions", "UNINITIALIZED_ENUM_COMPANION_WARNING",
"ktConcatNullable", "BlockingMethodInNonBlockingContext", "UnusedEquals" "ktConcatNullable", "BlockingMethodInNonBlockingContext", "UnusedEquals"
) )

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
internal interface NotificationTypeCst internal interface NotificationTypeCst

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
class OverScrollManager { class OverScrollManager {

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import android.annotation.SuppressLint import android.annotation.SuppressLint

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import android.annotation.SuppressLint import android.annotation.SuppressLint
@ -5,7 +9,12 @@ import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.webkit.CookieManager
import android.webkit.WebSettings
import android.webkit.WebView
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.webkit.WebSettingsCompat
import androidx.webkit.WebViewFeature
import com.fox2code.foxcompat.app.FoxActivity import com.fox2code.foxcompat.app.FoxActivity
import com.fox2code.mmm.androidacy.AndroidacyRepoData import com.fox2code.mmm.androidacy.AndroidacyRepoData
import com.fox2code.mmm.utils.io.net.Http import com.fox2code.mmm.utils.io.net.Http
@ -13,9 +22,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationItemView
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.progressindicator.LinearProgressIndicator import com.google.android.material.progressindicator.LinearProgressIndicator
import com.google.android.material.textview.MaterialTextView import com.google.android.material.textview.MaterialTextView
import io.noties.markwon.Markwon
import org.json.JSONException import org.json.JSONException
import org.json.JSONObject
import org.matomo.sdk.extra.TrackHelper import org.matomo.sdk.extra.TrackHelper
import timber.log.Timber import timber.log.Timber
import java.io.File import java.io.File
@ -24,12 +31,54 @@ import java.io.IOException
import java.util.Objects import java.util.Objects
class UpdateActivity : FoxActivity() { class UpdateActivity : FoxActivity() {
private var chgWv: WebView? = null
private var url: String = String()
@SuppressLint("RestrictedApi", "SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_update)
chgWv = findViewById(R.id.changelog_webview)
if (MainApplication.isMatomoAllowed()) { if (MainApplication.isMatomoAllowed()) {
TrackHelper.track().screen(this).with(MainApplication.INSTANCE!!.tracker) TrackHelper.track().screen(this).with(MainApplication.INSTANCE!!.tracker)
} }
setContentView(R.layout.activity_update) val changelogWebView = chgWv!!
val webSettings = changelogWebView.settings
webSettings.userAgentString = Http.androidacyUA
val cookieManager = CookieManager.getInstance()
cookieManager.setAcceptCookie(true)
cookieManager.setAcceptThirdPartyCookies(changelogWebView, true)
webSettings.domStorageEnabled = true
webSettings.javaScriptEnabled = true
webSettings.cacheMode = WebSettings.LOAD_DEFAULT
webSettings.allowFileAccess = false
webSettings.allowContentAccess = false
webSettings.mediaPlaybackRequiresUserGesture = false
// enable webview debugging on debug builds
if (BuildConfig.DEBUG) {
WebView.setWebContentsDebuggingEnabled(true)
}
// if app is in dark mode, force dark mode on webview
if (MainApplication.INSTANCE!!.isDarkTheme) {
// for api 33, use setAlgorithmicDarkeningAllowed, for api 29-32 use setForceDark, for api 28 and below use setForceDarkStrategy
if (WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) {
WebSettingsCompat.setAlgorithmicDarkeningAllowed(webSettings, true)
} else if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
@Suppress("DEPRECATION")
WebSettingsCompat.setForceDark(webSettings, WebSettingsCompat.FORCE_DARK_ON)
} else if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) {
@Suppress("DEPRECATION")
WebSettingsCompat.setForceDarkStrategy(
webSettings,
WebSettingsCompat.DARK_STRATEGY_WEB_THEME_DARKENING_ONLY
)
}
}
// Attempt at fixing CloudFlare captcha.
if (WebViewFeature.isFeatureSupported(WebViewFeature.REQUESTED_WITH_HEADER_ALLOW_LIST)) {
val allowList: MutableSet<String> = HashSet()
allowList.add("https://*.androidacy.com")
WebSettingsCompat.setRequestedWithHeaderOriginAllowList(webSettings, allowList)
}
// Get the progress bar and make it indeterminate for now // Get the progress bar and make it indeterminate for now
val progressIndicator = findViewById<LinearProgressIndicator>(R.id.update_progress) val progressIndicator = findViewById<LinearProgressIndicator>(R.id.update_progress)
progressIndicator.isIndeterminate = true progressIndicator.isIndeterminate = true
@ -179,6 +228,14 @@ class UpdateActivity : FoxActivity() {
} }
// check for update // check for update
val shouldUpdate = AppUpdateManager.appUpdateManager.checkUpdate(true) val shouldUpdate = AppUpdateManager.appUpdateManager.checkUpdate(true)
var token = AndroidacyRepoData.token
if (!AndroidacyRepoData.getInstance().isValidToken(token)) {
Timber.w("Invalid token, not checking for updates")
token = AndroidacyRepoData.getInstance().requestNewToken()
}
val deviceId = AndroidacyRepoData.generateDeviceId()
val clientId = BuildConfig.ANDROIDACY_CLIENT_ID
url = "https://production-api.androidacy.com/amm/updates/check?appVersionCode=${BuildConfig.VERSION_CODE}&token=$token&device_id=$deviceId&client_id=$clientId"
// if shouldUpdate is true, then we have an update // if shouldUpdate is true, then we have an update
if (shouldUpdate) { if (shouldUpdate) {
runOnUiThread { runOnUiThread {
@ -190,24 +247,14 @@ class UpdateActivity : FoxActivity() {
button.tooltipText = getString(R.string.download_update) button.tooltipText = getString(R.string.download_update)
} }
button.isEnabled = true button.isEnabled = true
// set changelog text. changelog could be markdown, so we need to convert it
val changelogTextView = findViewById<MaterialTextView>(R.id.update_changelog)
val markwon = Markwon.create(this@UpdateActivity)
markwon.setMarkdown(changelogTextView,
AppUpdateManager.appUpdateManager.changes.toString()
)
} }
// return // return
} else { } else {
runOnUiThread { runOnUiThread {
// set status text to no update available // set status text to no update available
statusTextView.setText(R.string.no_update_available) statusTextView.setText(R.string.no_update_available)
// set changelog text. changelog could be markdown, so we need to convert it val changelogWebView = chgWv!!
val changelogTextView = findViewById<MaterialTextView>(R.id.update_changelog) changelogWebView.loadUrl(url.replace("updates/check", "changelog"))
val markwon = Markwon.create(this@UpdateActivity)
markwon.setMarkdown(changelogTextView,
AppUpdateManager.appUpdateManager.changes.toString()
)
} }
} }
runOnUiThread { runOnUiThread {
@ -223,10 +270,6 @@ class UpdateActivity : FoxActivity() {
runOnUiThread { progressIndicator.isIndeterminate = true } runOnUiThread { progressIndicator.isIndeterminate = true }
// get status text view // get status text view
val statusTextView = findViewById<MaterialTextView>(R.id.update_progress_text) val statusTextView = findViewById<MaterialTextView>(R.id.update_progress_text)
val lastestJSON: ByteArray?
// get changelog from
// make a request to https://production-api.androidacy.com/ammm/updates/check with appVersionCode and token/device_id/client_id
// and the changelog is the json string in changelog
var token = AndroidacyRepoData.token var token = AndroidacyRepoData.token
if (!AndroidacyRepoData.getInstance().isValidToken(token)) { if (!AndroidacyRepoData.getInstance().isValidToken(token)) {
Timber.w("Invalid token, not checking for updates") Timber.w("Invalid token, not checking for updates")
@ -234,27 +277,10 @@ class UpdateActivity : FoxActivity() {
} }
val deviceId = AndroidacyRepoData.generateDeviceId() val deviceId = AndroidacyRepoData.generateDeviceId()
val clientId = BuildConfig.ANDROIDACY_CLIENT_ID val clientId = BuildConfig.ANDROIDACY_CLIENT_ID
val url = "https://production-api.androidacy.com/ammm/updates/check?appVersionCode=${BuildConfig.VERSION_CODE}&token=$token&device_id=$deviceId&client_id=$clientId" url = "https://production-api.androidacy.com/amm/updates/check?appVersionCode=${BuildConfig.VERSION_CODE}&token=$token&device_id=$deviceId&client_id=$clientId"
try {
lastestJSON = Http.doHttpGet(url, false)
} catch (e: Exception) {
// when logging, REMOVE the json from the log
Timber.e(e, "Error downloading update info")
runOnUiThread {
progressIndicator.isIndeterminate = false
progressIndicator.setProgressCompat(100, false)
statusTextView.setText(R.string.error_download_update)
}
return
}
// convert to JSON
val latestJSON = JSONObject(String(lastestJSON))
val changelog = latestJSON.getString("changelog")
runOnUiThread { runOnUiThread {
// set changelog text. changelog could be markdown, so we need to convert it val changelogWebView = chgWv!!
val changelogTextView = findViewById<MaterialTextView>(R.id.update_changelog) changelogWebView.loadUrl(url.replace("updates/check", "changelog"))
val markwon = Markwon.create(this@UpdateActivity)
markwon.setMarkdown(changelogTextView, changelog)
} }
// get the download url // get the download url
var downloadUrl = url.replace("check", "download") var downloadUrl = url.replace("check", "download")

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import android.content.Context import android.content.Context

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm package com.fox2code.mmm
import androidx.annotation.Keep import androidx.annotation.Keep

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("ktConcatNullable") @file:Suppress("ktConcatNullable")
package com.fox2code.mmm.androidacy package com.fox2code.mmm.androidacy

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.androidacy; package com.fox2code.mmm.androidacy;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("unused") @file:Suppress("unused")
package com.fox2code.mmm.androidacy package com.fox2code.mmm.androidacy

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("NAME_SHADOWING", "MemberVisibilityCanBePrivate") @file:Suppress("NAME_SHADOWING", "MemberVisibilityCanBePrivate")
package com.fox2code.mmm.androidacy package com.fox2code.mmm.androidacy

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.background package com.fox2code.mmm.background
import android.content.BroadcastReceiver import android.content.BroadcastReceiver

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.background package com.fox2code.mmm.background
import android.Manifest import android.Manifest

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("NAME_SHADOWING") @file:Suppress("NAME_SHADOWING")
package com.fox2code.mmm.installer package com.fox2code.mmm.installer

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.installer package com.fox2code.mmm.installer
import android.content.Context import android.content.Context

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("unused") @file:Suppress("unused")
package com.fox2code.mmm.installer package com.fox2code.mmm.installer

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.manager package com.fox2code.mmm.manager
import com.fox2code.mmm.markdown.MarkdownUrlLinker.Companion.urlLinkify import com.fox2code.mmm.markdown.MarkdownUrlLinker.Companion.urlLinkify

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.manager package com.fox2code.mmm.manager
import com.fox2code.mmm.BuildConfig import com.fox2code.mmm.BuildConfig

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("unused") @file:Suppress("unused")
package com.fox2code.mmm.manager package com.fox2code.mmm.manager

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.markdown package com.fox2code.mmm.markdown
import android.content.DialogInterface import android.content.DialogInterface

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.markdown package com.fox2code.mmm.markdown
import androidx.annotation.StringRes import androidx.annotation.StringRes

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.markdown package com.fox2code.mmm.markdown
import timber.log.Timber import timber.log.Timber

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.module; package com.fox2code.mmm.module;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.module; package com.fox2code.mmm.module;
import android.content.Context; import android.content.Context;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.module package com.fox2code.mmm.module
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("ktConcatNullable") @file:Suppress("ktConcatNullable")
package com.fox2code.mmm.module package com.fox2code.mmm.module

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.module package com.fox2code.mmm.module
import android.app.Activity import android.app.Activity

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.repo; package com.fox2code.mmm.repo;
import com.fox2code.mmm.utils.io.net.Http; import com.fox2code.mmm.utils.io.net.Http;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.repo; package com.fox2code.mmm.repo;
import com.fox2code.mmm.MainApplication; import com.fox2code.mmm.MainApplication;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.repo; package com.fox2code.mmm.repo;
import android.net.Uri; import android.net.Uri;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.repo; package com.fox2code.mmm.repo;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.repo package com.fox2code.mmm.repo
import androidx.annotation.StringRes import androidx.annotation.StringRes

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.repo package com.fox2code.mmm.repo
import com.fox2code.mmm.MainApplication import com.fox2code.mmm.MainApplication

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.settings package com.fox2code.mmm.settings
import android.content.Context import android.content.Context

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.settings; package com.fox2code.mmm.settings;
import static com.fox2code.mmm.settings.SettingsActivity.RepoFragment.applyMaterial3; import static com.fox2code.mmm.settings.SettingsActivity.RepoFragment.applyMaterial3;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.settings package com.fox2code.mmm.settings
import android.content.SharedPreferences import android.content.SharedPreferences

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils package com.fox2code.mmm.utils
import android.content.Context import android.content.Context

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils package com.fox2code.mmm.utils
import android.app.Dialog import android.app.Dialog

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils package com.fox2code.mmm.utils
class FastException private constructor() : RuntimeException() { class FastException private constructor() : RuntimeException() {

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("ktConcatNullable") @file:Suppress("ktConcatNullable")
package com.fox2code.mmm.utils package com.fox2code.mmm.utils

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils; package com.fox2code.mmm.utils;
import android.app.AlarmManager; import android.app.AlarmManager;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils package com.fox2code.mmm.utils
import android.Manifest import android.Manifest

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils; package com.fox2code.mmm.utils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils package com.fox2code.mmm.utils
import com.fox2code.mmm.BuildConfig import com.fox2code.mmm.BuildConfig
import com.fox2code.mmm.MainApplication import com.fox2code.mmm.MainApplication

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils; package com.fox2code.mmm.utils;
import android.net.Uri; import android.net.Uri;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.io package com.fox2code.mmm.utils.io
import android.content.Context import android.content.Context

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.io package com.fox2code.mmm.utils.io
import android.content.Context import android.content.Context

@ -1,26 +1,6 @@
/* /*
* Copyright (c) 2021 Fox2Code * Copyright (c) 2021-2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
* */
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* */
package com.fox2code.mmm.utils.io package com.fox2code.mmm.utils.io
import android.content.Context import android.content.Context

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("UNUSED_PARAMETER") @file:Suppress("UNUSED_PARAMETER")
package com.fox2code.mmm.utils.io package com.fox2code.mmm.utils.io

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("unused") @file:Suppress("unused")
package com.fox2code.mmm.utils.io package com.fox2code.mmm.utils.io

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
@file:Suppress("ktConcatNullable") @file:Suppress("ktConcatNullable")
package com.fox2code.mmm.utils.io.net package com.fox2code.mmm.utils.io.net

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.io.net package com.fox2code.mmm.utils.io.net
import androidx.annotation.Keep import androidx.annotation.Keep

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.io.net package com.fox2code.mmm.utils.io.net
import okhttp3.Cookie import okhttp3.Cookie

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.realm; package com.fox2code.mmm.utils.realm;
import org.json.JSONArray; import org.json.JSONArray;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.realm; package com.fox2code.mmm.utils.realm;
import io.realm.Realm; import io.realm.Realm;

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.sentry package com.fox2code.mmm.utils.sentry
import io.sentry.Breadcrumb import io.sentry.Breadcrumb

@ -1,3 +1,7 @@
/*
* Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
*/
package com.fox2code.mmm.utils.sentry package com.fox2code.mmm.utils.sentry
import android.annotation.SuppressLint import android.annotation.SuppressLint

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector android:autoMirrored="true" android:height="24dp" <vector android:autoMirrored="true" android:height="24dp"
android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:tint="?attr/colorControlNormal" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector android:height="24dp" android:tint="?attr/colorControlNormal" <vector android:height="24dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24" android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector android:height="24dp" android:tint="?attr/colorControlNormal" <vector android:height="24dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24" android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector android:height="24dp" android:tint="?attr/colorControlNormal" <vector android:height="24dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24" android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:autoMirrored="true" android:height="24dp" android:autoMirrored="true"
android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp" android:width="32dp"
android:height="32dp" android:height="32dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector android:height="24dp" android:tint="?attr/colorControlNormal" <vector android:height="24dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24" android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector android:height="24dp" android:tint="?attr/colorControlNormal" <vector android:height="24dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24" android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

@ -1,3 +1,7 @@
<!--
~ Copyright (c) 2023 to present Androidacy and contributors. Names, logos, icons, and the Androidacy name are all trademarks of Androidacy and may not be used without license. See LICENSE for more information.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save