diff --git a/app/build.gradle b/app/build.gradle index 8a6b052b8..19e9f9fd1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ static def generateVersionCode() { android { defaultConfig { applicationId "nl.tudelft.trustchain" - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 versionCode generateVersionCode() diff --git a/app/src/main/java/nl/tudelft/trustchain/app/TrustChainApplication.kt b/app/src/main/java/nl/tudelft/trustchain/app/TrustChainApplication.kt index 79418719c..126eab19d 100644 --- a/app/src/main/java/nl/tudelft/trustchain/app/TrustChainApplication.kt +++ b/app/src/main/java/nl/tudelft/trustchain/app/TrustChainApplication.kt @@ -5,7 +5,6 @@ import android.bluetooth.BluetoothManager import android.content.Context import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import androidx.core.content.getSystemService import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences @@ -79,7 +78,6 @@ class TrustChainApplication : Application() { var isFirstRun: Boolean = false lateinit var appLoader: AppLoader - @RequiresApi(Build.VERSION_CODES.M) override fun onCreate() = runBlocking { super.onCreate() @@ -95,7 +93,6 @@ class TrustChainApplication : Application() { } } - @RequiresApi(Build.VERSION_CODES.M) fun initIPv8() { val config = IPv8Configuration( diff --git a/app/src/main/java/nl/tudelft/trustchain/app/service/TrustChainService.kt b/app/src/main/java/nl/tudelft/trustchain/app/service/TrustChainService.kt index f90861edd..bceee139b 100644 --- a/app/src/main/java/nl/tudelft/trustchain/app/service/TrustChainService.kt +++ b/app/src/main/java/nl/tudelft/trustchain/app/service/TrustChainService.kt @@ -2,23 +2,16 @@ package nl.tudelft.trustchain.app.service import android.app.PendingIntent import android.content.Intent -import android.os.Build import androidx.core.app.NotificationCompat import androidx.core.app.TaskStackBuilder -import androidx.annotation.RequiresApi import nl.tudelft.ipv8.android.service.IPv8Service import nl.tudelft.trustchain.app.R import nl.tudelft.trustchain.app.ui.dashboard.DashboardActivity -@RequiresApi(Build.VERSION_CODES.M) class TrustChainService : IPv8Service() { override fun createNotification(): NotificationCompat.Builder { val trustChainDashboardIntent = Intent(this, DashboardActivity::class.java) - val flags = - when { - Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE - else -> PendingIntent.FLAG_UPDATE_CURRENT - } + val flags = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE val pendingIntent = TaskStackBuilder.create(this) .addNextIntentWithParentStack(trustChainDashboardIntent) diff --git a/app/src/main/java/nl/tudelft/trustchain/app/ui/dashboard/DashboardActivity.kt b/app/src/main/java/nl/tudelft/trustchain/app/ui/dashboard/DashboardActivity.kt index 321879335..f0bab6d73 100644 --- a/app/src/main/java/nl/tudelft/trustchain/app/ui/dashboard/DashboardActivity.kt +++ b/app/src/main/java/nl/tudelft/trustchain/app/ui/dashboard/DashboardActivity.kt @@ -7,7 +7,6 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.provider.Settings -import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager import com.mattskala.itemadapter.ItemAdapter @@ -17,7 +16,6 @@ import nl.tudelft.trustchain.app.TrustChainApplication import nl.tudelft.trustchain.app.databinding.ActivityDashboardBinding import nl.tudelft.trustchain.common.util.viewBinding -@RequiresApi(Build.VERSION_CODES.M) class DashboardActivity : AppCompatActivity() { private val binding by viewBinding(ActivityDashboardBinding::inflate) diff --git a/common-bitcoin/build.gradle b/common-bitcoin/build.gradle index 3bd1cc903..92ed14c58 100644 --- a/common-bitcoin/build.gradle +++ b/common-bitcoin/build.gradle @@ -14,7 +14,7 @@ ktlint { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/common-ethereum/build.gradle b/common-ethereum/build.gradle index d75d5168d..b55f052f2 100644 --- a/common-ethereum/build.gradle +++ b/common-ethereum/build.gradle @@ -14,7 +14,7 @@ ktlint { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/common/build.gradle b/common/build.gradle index 33f9b3a21..973cb5902 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -23,7 +23,7 @@ sqldelight { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/currencyii/build.gradle b/currencyii/build.gradle index 7cce15b57..6cf6a97b9 100644 --- a/currencyii/build.gradle +++ b/currencyii/build.gradle @@ -13,7 +13,7 @@ ktlint { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/debug/build.gradle b/debug/build.gradle index eb2056cb7..915460931 100644 --- a/debug/build.gradle +++ b/debug/build.gradle @@ -12,7 +12,7 @@ ktlint { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/eurotoken/build.gradle b/eurotoken/build.gradle index 9dfcc3a60..7fbefdc89 100644 --- a/eurotoken/build.gradle +++ b/eurotoken/build.gradle @@ -23,7 +23,7 @@ sqldelight { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/community/EuroTokenCommunity.kt b/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/community/EuroTokenCommunity.kt index a5d82bde7..c2fa35844 100644 --- a/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/community/EuroTokenCommunity.kt +++ b/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/community/EuroTokenCommunity.kt @@ -1,7 +1,6 @@ package nl.tudelft.trustchain.eurotoken.community import android.content.Context -import androidx.annotation.RequiresApi import kotlin.random.Random import nl.tudelft.ipv8.Community import nl.tudelft.ipv8.IPv4Address @@ -88,7 +87,6 @@ class EuroTokenCommunity( transactionRepository.attemptRollback(peer, payload.transactionHash) } - @RequiresApi(Build.VERSION_CODES.O) fun connectToGateway( public_key: String, ip: String, diff --git a/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/CreateMoneyFragment.kt b/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/CreateMoneyFragment.kt index 8594ad300..5987c4875 100644 --- a/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/CreateMoneyFragment.kt +++ b/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/CreateMoneyFragment.kt @@ -3,7 +3,6 @@ package nl.tudelft.trustchain.eurotoken.ui.exchange import android.content.Context import android.os.Bundle import android.view.View -import androidx.annotation.RequiresApi import androidx.navigation.fragment.findNavController import nl.tudelft.ipv8.keyvault.defaultCryptoProvider import nl.tudelft.ipv8.util.hexToBytes @@ -39,8 +38,6 @@ class CreateMoneyFragment : EurotokenBaseFragment(R.layout.fragment_create_money ?: throw java.lang.IllegalStateException("EuroTokenCommunity is not configured") } - - @RequiresApi(Build.VERSION_CODES.O) override fun onViewCreated( view: View, savedInstanceState: Bundle? diff --git a/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/ExchangeFragment.kt b/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/ExchangeFragment.kt index 0868d6373..31f3b87a5 100644 --- a/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/ExchangeFragment.kt +++ b/eurotoken/src/main/java/nl/tudelft/trustchain/eurotoken/ui/exchange/ExchangeFragment.kt @@ -2,7 +2,6 @@ package nl.tudelft.trustchain.eurotoken.ui.exchange import android.content.Context import android.content.Intent -import android.os.Build import android.os.Bundle import android.text.Editable import android.text.TextWatcher @@ -11,7 +10,6 @@ import android.view.View import android.view.ViewGroup import android.widget.EditText import android.widget.Toast -import androidx.annotation.RequiresApi import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController @@ -66,7 +64,7 @@ class ExchangeFragment : EurotokenBaseFragment() { _binding = null } - @RequiresApi(Build.VERSION_CODES.O) + @Deprecated("Deprecated in Java") override fun onActivityResult( requestCode: Int, resultCode: Int, @@ -85,31 +83,43 @@ class ExchangeFragment : EurotokenBaseFragment() { try { val connectionData = ConnectionData(it) Toast.makeText(requireContext(), connectionData.ip, Toast.LENGTH_LONG).show() - if (connectionData.type == "destruction") { - val args = Bundle() - args.putString(DestroyMoneyFragment.ARG_PUBLIC_KEY, connectionData.publicKey) - args.putString(DestroyMoneyFragment.ARG_NAME, connectionData.name) - args.putLong(DestroyMoneyFragment.ARG_AMOUNT, connectionData.amount) - args.putInt(DestroyMoneyFragment.ARG_PORT, connectionData.port) - args.putString(DestroyMoneyFragment.ARG_IP, connectionData.ip) - args.putString(DestroyMoneyFragment.ARG_PAYMENT_ID, connectionData.paymentId) - findNavController().navigate( - R.id.action_exchangeFragment_to_destroyMoneyFragment, - args - ) - } else if (connectionData.type == "creation") { - val args = Bundle() - args.putString(CreateMoneyFragment.ARG_PUBLIC_KEY, connectionData.publicKey) - args.putString(CreateMoneyFragment.ARG_NAME, connectionData.name) - args.putInt(CreateMoneyFragment.ARG_PORT, connectionData.port) - args.putString(CreateMoneyFragment.ARG_IP, connectionData.ip) - args.putString(CreateMoneyFragment.ARG_PAYMENT_ID, connectionData.paymentId) - findNavController().navigate( - R.id.action_exchangeFragment_to_createMoneyFragment, - args - ) - } else { - Toast.makeText(requireContext(), "Invalid QR", Toast.LENGTH_LONG).show() + when (connectionData.type) { + "destruction" -> { + val args = Bundle() + args.putString( + DestroyMoneyFragment.ARG_PUBLIC_KEY, + connectionData.publicKey + ) + args.putString(DestroyMoneyFragment.ARG_NAME, connectionData.name) + args.putLong(DestroyMoneyFragment.ARG_AMOUNT, connectionData.amount) + args.putInt(DestroyMoneyFragment.ARG_PORT, connectionData.port) + args.putString(DestroyMoneyFragment.ARG_IP, connectionData.ip) + args.putString( + DestroyMoneyFragment.ARG_PAYMENT_ID, + connectionData.paymentId + ) + findNavController().navigate( + R.id.action_exchangeFragment_to_destroyMoneyFragment, + args + ) + } + + "creation" -> { + val args = Bundle() + args.putString(CreateMoneyFragment.ARG_PUBLIC_KEY, connectionData.publicKey) + args.putString(CreateMoneyFragment.ARG_NAME, connectionData.name) + args.putInt(CreateMoneyFragment.ARG_PORT, connectionData.port) + args.putString(CreateMoneyFragment.ARG_IP, connectionData.ip) + args.putString(CreateMoneyFragment.ARG_PAYMENT_ID, connectionData.paymentId) + findNavController().navigate( + R.id.action_exchangeFragment_to_createMoneyFragment, + args + ) + } + + else -> { + Toast.makeText(requireContext(), "Invalid QR", Toast.LENGTH_LONG).show() + } } } catch (e: JSONException) { Toast.makeText(requireContext(), "Scan failed, try again", Toast.LENGTH_LONG).show() diff --git a/freedomOfComputing/build.gradle b/freedomOfComputing/build.gradle index cfda22679..84129d1ca 100644 --- a/freedomOfComputing/build.gradle +++ b/freedomOfComputing/build.gradle @@ -12,7 +12,7 @@ ktlint { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/freedomOfComputing/src/main/java/nl/tudelft/trustchain/FOC/ExecutionActivity.java b/freedomOfComputing/src/main/java/nl/tudelft/trustchain/FOC/ExecutionActivity.java index e0df12d4b..877cba798 100644 --- a/freedomOfComputing/src/main/java/nl/tudelft/trustchain/FOC/ExecutionActivity.java +++ b/freedomOfComputing/src/main/java/nl/tudelft/trustchain/FOC/ExecutionActivity.java @@ -62,7 +62,6 @@ private void storeState() { * * @return the latest known state of the dynamically loaded code or null if it does not exist */ - @RequiresApi(Build.VERSION_CODES.O) // TODO: this should be usable on all versions. private Fragment.SavedState getState() { // states are stored in the same directories as apks themselves (in the app specific files) String fileName = this.apkName + DATA_DOT_EXTENSION; @@ -127,11 +126,9 @@ protected void onCreate(Bundle savedInstanceState) { String mainFragmentClass = getMainFragmentClass(apkPath); Class fragmentClass = classLoader.loadClass((mainFragmentClass != null) ? mainFragmentClass : "com.execmodule." + activeApp + ".MainFragment"); this.mainFragment = (Fragment) fragmentClass.newInstance(); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { - Fragment.SavedState state = this.getState(); - if (state != null) { - this.mainFragment.setInitialSavedState(state); - } + Fragment.SavedState state = this.getState(); + if (state != null) { + this.mainFragment.setInitialSavedState(state); } LinearLayout tmpLayout = new LinearLayout(context); diff --git a/musicdao/build.gradle b/musicdao/build.gradle index 9e59487d9..811b06078 100644 --- a/musicdao/build.gradle +++ b/musicdao/build.gradle @@ -25,7 +25,7 @@ android { useLibrary 'android.test.mock' defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/AppContainer.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/AppContainer.kt index 66b842b36..dfe2fcace 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/AppContainer.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/AppContainer.kt @@ -1,14 +1,11 @@ package nl.tudelft.trustchain.musicdao import android.net.Uri -import android.os.Build -import androidx.annotation.RequiresApi object AppContainer { lateinit var currentCallback: (List) -> Unit lateinit var activity: MusicActivity - @RequiresApi(Build.VERSION_CODES.O) fun provide(_activity: MusicActivity) { activity = _activity } diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/HiltModules.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/HiltModules.kt index d8a01a5ec..7d162082f 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/HiltModules.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/HiltModules.kt @@ -1,9 +1,7 @@ package nl.tudelft.trustchain.musicdao import android.content.Context -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import androidx.preference.PreferenceManager import androidx.room.Room import nl.tudelft.trustchain.musicdao.core.cache.CacheDatabase @@ -109,7 +107,6 @@ class HiltModules { ?: throw IllegalStateException("DaoCommunity is not configured") } - @RequiresApi(Build.VERSION_CODES.O) @Provides @Singleton fun path( @@ -118,7 +115,6 @@ class HiltModules { return CachePath(applicationContext) } - @RequiresApi(Build.VERSION_CODES.O) @Provides @Singleton fun downloadFinishUseCase( @@ -128,7 +124,6 @@ class HiltModules { return DownloadFinishUseCase(database = database, cachePath = cachePath) } - @RequiresApi(Build.VERSION_CODES.O) @Provides @Singleton fun provideWalletService( @@ -148,7 +143,6 @@ class HiltModules { ) } - @RequiresApi(Build.VERSION_CODES.O) @Provides @Singleton fun provideWalletManager( @@ -179,7 +173,6 @@ class HiltModules { } class CachePath(val applicationContext: Context) { - @RequiresApi(Build.VERSION_CODES.O) fun getPath(): Path? { return Paths.get("${applicationContext.cacheDir}") } diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/MusicActivity.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/MusicActivity.kt index 87bbe2ae5..32c8fe101 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/MusicActivity.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/MusicActivity.kt @@ -5,12 +5,10 @@ import android.content.Context import android.content.Intent import android.content.ServiceConnection import android.net.Uri -import android.os.Build import android.os.Bundle import android.os.IBinder import android.util.Log import androidx.activity.compose.setContent -import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.foundation.ExperimentalFoundationApi @@ -73,7 +71,6 @@ class MusicActivity : AppCompatActivity() { @DelicateCoroutinesApi @ExperimentalAnimationApi @ExperimentalFoundationApi - @RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @ExperimentalComposeUiApi override fun onCreate(savedInstanceState: Bundle?) { @@ -233,7 +230,6 @@ class MusicActivity : AppCompatActivity() { return uriList } - @RequiresApi(Build.VERSION_CODES.O) private fun iterativelyFetchReleases() { @Suppress("DEPRECATION") lifecycleScope.launchWhenStarted { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/cache/entities/AlbumEntity.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/cache/entities/AlbumEntity.kt index 88d8b7b0c..5a92b5f71 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/cache/entities/AlbumEntity.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/cache/entities/AlbumEntity.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.core.cache.entities -import android.os.Build -import androidx.annotation.RequiresApi import androidx.room.Entity import androidx.room.PrimaryKey import nl.tudelft.trustchain.musicdao.core.repositories.model.Album @@ -23,7 +21,6 @@ data class AlbumEntity( val infoHash: String?, val torrentPath: String? ) { - @RequiresApi(Build.VERSION_CODES.O) fun toAlbum(): Album { return Album( id = id, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/dao/DaoCommunity.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/dao/DaoCommunity.kt index c12d1aee3..90ecaad24 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/dao/DaoCommunity.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/dao/DaoCommunity.kt @@ -2,9 +2,7 @@ package nl.tudelft.trustchain.musicdao.core.dao import android.app.Activity import android.content.Context -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import nl.tudelft.ipv8.Community import nl.tudelft.ipv8.android.IPv8Android import nl.tudelft.ipv8.attestation.trustchain.TrustChainBlock @@ -48,7 +46,6 @@ class DaoCommunity constructor(serviceId: String = "02313685c1912a141279f8248fc8 * @param entranceFee - Long, the entrance fee for joining the DAO. * @param threshold - Int, the percentage of members that need to vote before allowing someone in the DAO. */ - @RequiresApi(Build.VERSION_CODES.O) fun createBitcoinGenesisWallet( entranceFee: Long, threshold: Int, @@ -68,7 +65,6 @@ class DaoCommunity constructor(serviceId: String = "02313685c1912a141279f8248fc8 * **NOTE** the latest walletBlockData should be given, otherwise the serialized transaction is invalid. * @param walletBlock - the latest (that you know of) shared wallet block. */ - @RequiresApi(Build.VERSION_CODES.O) fun proposeJoinWallet(walletBlock: TrustChainBlock): SWSignatureAskTransactionData { return daoJoinHelper.proposeJoinWallet(myPeer, walletBlock) } @@ -106,7 +102,6 @@ class DaoCommunity constructor(serviceId: String = "02313685c1912a141279f8248fc8 * @param satoshiAmount - Long, the amount that needs to be transferred * @return the proposal block */ - @RequiresApi(Build.VERSION_CODES.O) fun proposeTransferFunds( walletBlock: TrustChainBlock, receiverAddressSerialized: String, @@ -129,7 +124,6 @@ class DaoCommunity constructor(serviceId: String = "02313685c1912a141279f8248fc8 * @param receiverAddress - String, the address where the transfer needs to go * @param satoshiAmount - Long, the amount that needs to be transferred */ - @RequiresApi(Build.VERSION_CODES.O) fun transferFunds( walletData: SWJoinBlockTD, walletBlockData: TrustChainTransaction, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/AlbumRepository.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/AlbumRepository.kt index 4c5370fa6..5bb415225 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/AlbumRepository.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/AlbumRepository.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.core.repositories -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import androidx.lifecycle.map import kotlinx.coroutines.DelicateCoroutinesApi @@ -17,7 +15,6 @@ import javax.inject.Inject * This class will be the class the application interacts with and will return * the data that the UI/CMD interface can work with. */ -@RequiresApi(Build.VERSION_CODES.O) class AlbumRepository @Inject constructor( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/ArtistRepository.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/ArtistRepository.kt index 893d7c512..ce2077300 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/ArtistRepository.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/ArtistRepository.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.core.repositories -import android.os.Build -import androidx.annotation.RequiresApi import nl.tudelft.trustchain.musicdao.core.ipv8.MusicCommunity import nl.tudelft.trustchain.musicdao.core.ipv8.blocks.artistAnnounce.ArtistAnnounceBlock import nl.tudelft.trustchain.musicdao.core.ipv8.blocks.artistAnnounce.ArtistAnnounceBlockRepository @@ -12,7 +10,6 @@ import kotlinx.coroutines.flow.StateFlow import javax.inject.Inject import javax.inject.Singleton -@RequiresApi(Build.VERSION_CODES.O) @Singleton class ArtistRepository @Inject diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/BatchPublisher.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/BatchPublisher.kt index b567f973f..260a4a2a5 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/BatchPublisher.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/BatchPublisher.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.core.repositories.album -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import kotlinx.coroutines.DelicateCoroutinesApi import nl.tudelft.trustchain.musicdao.CachePath import nl.tudelft.trustchain.musicdao.core.repositories.AlbumRepository @@ -14,7 +12,6 @@ import java.time.Instant import java.util.* import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) class BatchPublisher @Inject constructor( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/CreateReleaseUseCase.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/CreateReleaseUseCase.kt index e5dd70e84..834b79a4a 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/CreateReleaseUseCase.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/repositories/album/CreateReleaseUseCase.kt @@ -2,9 +2,7 @@ package nl.tudelft.trustchain.musicdao.core.repositories.album import android.content.Context import android.net.Uri -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import kotlinx.coroutines.DelicateCoroutinesApi import nl.tudelft.trustchain.musicdao.CachePath import nl.tudelft.trustchain.musicdao.core.repositories.AlbumRepository @@ -21,7 +19,6 @@ class CreateReleaseUseCase private val cachePath: CachePath ) { @OptIn(DelicateCoroutinesApi::class) - @RequiresApi(Build.VERSION_CODES.O) suspend operator fun invoke( artist: String, title: String, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/TorrentEngine.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/TorrentEngine.kt index 7991bf71f..3ff3675f0 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/TorrentEngine.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/TorrentEngine.kt @@ -3,10 +3,8 @@ package nl.tudelft.trustchain.musicdao.core.torrent import android.content.Context import android.content.res.Resources import android.net.Uri -import android.os.Build import android.provider.MediaStore import android.util.Log -import androidx.annotation.RequiresApi import nl.tudelft.trustchain.musicdao.CachePath import nl.tudelft.trustchain.musicdao.core.cache.CacheDatabase import nl.tudelft.trustchain.musicdao.core.torrent.fileProcessing.DownloadFinishUseCase @@ -29,7 +27,6 @@ import kotlin.io.path.createDirectories @DelicateCoroutinesApi @Singleton -@RequiresApi(Build.VERSION_CODES.O) class TorrentEngine @Inject constructor( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/DownloadFinishUseCase.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/DownloadFinishUseCase.kt index 31411039d..966ac2be1 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/DownloadFinishUseCase.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/DownloadFinishUseCase.kt @@ -1,18 +1,15 @@ package nl.tudelft.trustchain.musicdao.core.torrent.fileProcessing -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi -import nl.tudelft.trustchain.musicdao.CachePath -import nl.tudelft.trustchain.musicdao.core.cache.CacheDatabase -import nl.tudelft.trustchain.musicdao.core.cache.entities.SongEntity import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import nl.tudelft.trustchain.musicdao.CachePath +import nl.tudelft.trustchain.musicdao.core.cache.CacheDatabase +import nl.tudelft.trustchain.musicdao.core.cache.entities.SongEntity import java.nio.file.Paths -@RequiresApi(Build.VERSION_CODES.O) -class DownloadFinishUseCase constructor( +class DownloadFinishUseCase( private val database: CacheDatabase, private val cachePath: CachePath ) { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/FileProcessor.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/FileProcessor.kt index c167582f5..2ac0ce720 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/FileProcessor.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/torrent/fileProcessing/FileProcessor.kt @@ -2,9 +2,7 @@ package nl.tudelft.trustchain.musicdao.core.torrent.fileProcessing import android.graphics.Bitmap import android.graphics.BitmapFactory -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import nl.tudelft.trustchain.musicdao.core.util.Util import com.mpatric.mp3agic.Mp3File import java.io.File @@ -13,7 +11,6 @@ import java.lang.Exception import java.nio.file.Path import java.nio.file.Paths -@RequiresApi(Build.VERSION_CODES.O) class FileProcessor { companion object { private fun getFiles(path: Path): List? { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOCreateHelper.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOCreateHelper.kt index ed4fd70fb..14a1d9f94 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOCreateHelper.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOCreateHelper.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.core.util import android.content.Context -import android.os.Build -import androidx.annotation.RequiresApi import nl.tudelft.ipv8.Peer import nl.tudelft.ipv8.android.IPv8Android import nl.tudelft.ipv8.attestation.trustchain.TrustChainCommunity @@ -29,7 +27,6 @@ class DAOCreateHelper { * If the transaction is valid, the result is broadcasted on trust chain. * **Throws** exceptions if something goes wrong with creating or broadcasting bitcoin transaction. */ - @RequiresApi(Build.VERSION_CODES.O) fun createBitcoinGenesisWallet( myPeer: Peer, entranceFee: Long, @@ -56,7 +53,6 @@ class DAOCreateHelper { * 1.2 Finishes the last step of creating a genesis shared bitcoin wallet. * Posts a self-signed trust chain block containing the shared wallet data. */ - @RequiresApi(Build.VERSION_CODES.O) private fun broadcastCreatedSharedWallet( myPeer: Peer, transactionSerialized: String, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOJoinHelper.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOJoinHelper.kt index 075d40427..8fbf676ac 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOJoinHelper.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOJoinHelper.kt @@ -1,9 +1,7 @@ package nl.tudelft.trustchain.musicdao.core.util import android.content.Context -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import nl.tudelft.ipv8.Peer import nl.tudelft.ipv8.android.IPv8Android import nl.tudelft.ipv8.attestation.trustchain.TrustChainBlock @@ -44,7 +42,6 @@ class DAOJoinHelper { * **NOTE** the latest walletBlockData should be given, otherwise the serialized transaction is invalid. * @param mostRecentWalletBlock - the latest (that you know of) shared wallet block. */ - @RequiresApi(Build.VERSION_CODES.O) fun proposeJoinWallet( myPeer: Peer, mostRecentWalletBlock: TrustChainBlock diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOTransferFundsHelper.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOTransferFundsHelper.kt index e18bc507c..33ad29075 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOTransferFundsHelper.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/DAOTransferFundsHelper.kt @@ -2,10 +2,8 @@ package nl.tudelft.trustchain.musicdao.core.util import android.app.Activity import android.content.Context -import android.os.Build import android.util.Log import android.widget.Toast -import androidx.annotation.RequiresApi import nl.tudelft.ipv8.Peer import nl.tudelft.ipv8.android.IPv8Android import nl.tudelft.ipv8.attestation.trustchain.TrustChainBlock @@ -48,7 +46,6 @@ class DAOTransferFundsHelper { * @param satoshiAmount - Long, the amount that needs to be transferred * @return the proposal block */ - @RequiresApi(Build.VERSION_CODES.O) fun proposeTransferFunds( myPeer: Peer, mostRecentWalletBlock: TrustChainBlock, @@ -107,7 +104,6 @@ class DAOTransferFundsHelper { /** * 3.2 Transfer funds from an existing shared wallet to a third-party. Broadcast bitcoin transaction. */ - @RequiresApi(Build.VERSION_CODES.O) fun transferFunds( myPeer: Peer, walletData: SWJoinBlockTD, @@ -168,7 +164,6 @@ class DAOTransferFundsHelper { /** * 3.3 Everything is done, publish the final serialized bitcoin transaction data on trustchain. */ - @RequiresApi(Build.VERSION_CODES.O) private fun broadcastTransferFundSuccessful( myPeer: Peer, walletData: SWJoinBlockTD, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWJoinBlockTransactionData.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWJoinBlockTransactionData.kt index 99aaded1c..58274aa20 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWJoinBlockTransactionData.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWJoinBlockTransactionData.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.core.util.sharedWallet -import android.os.Build -import androidx.annotation.RequiresApi import com.google.gson.Gson import com.google.gson.JsonObject import nl.tudelft.ipv8.attestation.trustchain.TrustChainTransaction @@ -49,7 +47,6 @@ class SWJoinBlockTransactionData(data: JsonObject) : SWBlockTransactionData( jsonData = SWUtil.objectToJsonObject(data) } - @RequiresApi(Build.VERSION_CODES.O) constructor( entranceFee: Long, transactionSerialized: String, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWUtil.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWUtil.kt index b453fe258..8a82c18d5 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWUtil.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/core/util/sharedWallet/SWUtil.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.core.util.sharedWallet -import android.os.Build -import androidx.annotation.RequiresApi import com.google.gson.Gson import com.google.gson.JsonObject import nl.tudelft.ipv8.attestation.trustchain.TrustChainTransaction @@ -20,7 +18,6 @@ object SWUtil { * Generate a random 128 bit string * From: https://sakthipriyan.com/2017/04/02/creating-base64-uuid-in-java.html */ - @RequiresApi(Build.VERSION_CODES.O) @JvmStatic fun randomUUID(): String { val uuid: UUID = UUID.randomUUID() diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/MusicDAOApp.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/MusicDAOApp.kt index e6cfec7ce..1fdf1c2e5 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/MusicDAOApp.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/MusicDAOApp.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.ui import MinimizedPlayer -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column @@ -30,7 +28,6 @@ import nl.tudelft.trustchain.musicdao.ui.navigation.BottomNavigationBar @ExperimentalAnimationApi @ExperimentalFoundationApi -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @OptIn(ExperimentalComposeUiApi::class) @Composable diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/components/releases/ReleaseList.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/components/releases/ReleaseList.kt index 41a883a93..a6972c065 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/components/releases/ReleaseList.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/components/releases/ReleaseList.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.components.releases -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -21,7 +19,6 @@ import nl.tudelft.trustchain.musicdao.core.repositories.model.Album import nl.tudelft.trustchain.musicdao.ui.components.ReleaseCover import nl.tudelft.trustchain.musicdao.ui.navigation.Screen -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @ExperimentalFoundationApi @Composable @@ -46,7 +43,6 @@ fun ReleaseList( } } -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @ExperimentalFoundationApi @Composable @@ -62,7 +58,6 @@ fun NonLazyReleaseList( } } -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @ExperimentalFoundationApi @Composable diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/AppNavigation.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/AppNavigation.kt index df98e4563..964678379 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/AppNavigation.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/AppNavigation.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.navigation -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.EnterTransition import androidx.compose.animation.ExitTransition @@ -44,7 +42,6 @@ import nl.tudelft.trustchain.musicdao.ui.screens.profileMenu.ProfileMenuScreen @ExperimentalAnimationApi @ExperimentalFoundationApi -@RequiresApi(Build.VERSION_CODES.O) @OptIn(ExperimentalMaterialApi::class, ExperimentalComposeUiApi::class) @Composable fun AppNavigation( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/Drawer.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/Drawer.kt index bc70b8adb..9740d9dd0 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/Drawer.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/navigation/Drawer.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.navigation -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape @@ -17,7 +15,6 @@ import androidx.compose.ui.unit.dp import androidx.navigation.NavController import nl.tudelft.trustchain.musicdao.ui.screens.profile.MyProfileScreenViewModel -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @Composable fun Drawer( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsScreen.kt index 9378164b4..254fe9888 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.artists -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -26,7 +24,6 @@ import com.google.accompanist.swiperefresh.SwipeRefresh import com.google.accompanist.swiperefresh.rememberSwipeRefreshState @ExperimentalMaterialApi -@RequiresApi(Build.VERSION_CODES.O) @Composable fun DiscoverArtistsScreen(navController: NavController) { val discoverArtistsViewModel: DiscoverArtistsViewModel = hiltViewModel() diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsViewModel.kt index cca48d89e..b65ef2ce9 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/artists/DiscoverArtistsViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.artists -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -15,7 +13,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) @HiltViewModel class DiscoverArtistsViewModel @Inject diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoCreateScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoCreateScreen.kt index 95105ca88..053fdd0d0 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoCreateScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoCreateScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.dao -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.layout.* import androidx.compose.material.Card import androidx.compose.material.OutlinedButton @@ -18,7 +16,6 @@ import androidx.compose.ui.unit.dp import androidx.navigation.NavController import nl.tudelft.trustchain.musicdao.ui.SnackbarHandler -@RequiresApi(Build.VERSION_CODES.O) @Composable fun DaoCreateScreen( daoViewModel: DaoViewModel, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoDetail.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoDetail.kt index 4fc94cf00..1706f3bbf 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoDetail.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoDetail.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.ui.screens.dao import android.annotation.SuppressLint -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -27,7 +25,6 @@ import nl.tudelft.trustchain.musicdao.ui.util.Chip import com.google.accompanist.swiperefresh.SwipeRefresh import com.google.accompanist.swiperefresh.rememberSwipeRefreshState -@RequiresApi(Build.VERSION_CODES.N) @Composable fun DaoDetailScreen( navController: NavController, @@ -52,7 +49,6 @@ fun DaoDetailScreen( } @SuppressLint("UnrememberedMutableState") -@RequiresApi(Build.VERSION_CODES.N) @Composable fun DaoDetailPure( daoInitial: DAO, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoListScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoListScreen.kt index 646c8f3eb..cba0ebf4c 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoListScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoListScreen.kt @@ -25,7 +25,6 @@ import nl.tudelft.trustchain.musicdao.ui.screens.profileMenu.CustomMenuItem import com.google.accompanist.swiperefresh.SwipeRefresh import com.google.accompanist.swiperefresh.rememberSwipeRefreshState -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @Composable fun DaoListScreen( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoViewModel.kt index 3faab0b20..0d6e3b379 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/DaoViewModel.kt @@ -3,9 +3,7 @@ package nl.tudelft.trustchain.musicdao.ui.screens.dao import android.annotation.SuppressLint import android.app.Activity import android.content.Context -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import nl.tudelft.trustchain.musicdao.core.repositories.ArtistRepository @@ -55,7 +53,6 @@ class DaoViewModel refreshOneShot() } - @RequiresApi(Build.VERSION_CODES.O) fun createGenesisDAO( currentEntranceFee: Long, currentThreshold: Int, @@ -284,7 +281,6 @@ class DaoViewModel } } - @RequiresApi(Build.VERSION_CODES.O) fun joinSharedWalletClicked( daoId: String, context: Context @@ -642,7 +638,6 @@ class DaoViewModel return Coin.valueOf(previousTransaction.vout.filter { it.scriptPubKey.size == 35 }[0].nValue) } - @RequiresApi(Build.VERSION_CODES.O) fun getListsOfArtists(): List { return artistRepository.getArtists() } diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/ProposalCreateScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/ProposalCreateScreen.kt index 692ca4464..48e4ccfb2 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/ProposalCreateScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/dao/ProposalCreateScreen.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.ui.screens.dao import android.app.Activity -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.material.icons.Icons @@ -16,7 +14,6 @@ import androidx.compose.ui.unit.dp import androidx.navigation.NavController import nl.tudelft.trustchain.musicdao.ui.SnackbarHandler -@RequiresApi(Build.VERSION_CODES.O) @Composable fun ProposalCreateScreen( daoId: String, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/debug/DebugScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/debug/DebugScreenViewModel.kt index d302506ed..794ebfd7a 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/debug/DebugScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/debug/DebugScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.debug -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import nl.tudelft.trustchain.musicdao.core.torrent.TorrentEngine @@ -16,7 +14,6 @@ import kotlinx.coroutines.launch import javax.inject.Inject @OptIn(DelicateCoroutinesApi::class) -@RequiresApi(Build.VERSION_CODES.O) @HiltViewModel class DebugScreenViewModel @Inject diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreen.kt index 019df2ce0..b8603fa43 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.donate -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -22,7 +20,6 @@ import nl.tudelft.trustchain.musicdao.ui.screens.profileMenu.CustomMenuItem import nl.tudelft.trustchain.musicdao.ui.screens.wallet.BitcoinWalletViewModel import kotlinx.coroutines.launch -@RequiresApi(Build.VERSION_CODES.O) @Composable fun DonateScreen( bitcoinWalletViewModel: BitcoinWalletViewModel, @@ -40,7 +37,6 @@ fun DonateScreen( } } - @RequiresApi(Build.VERSION_CODES.O) fun send() { // Check if enough balance available val confirmedBalance = bitcoinWalletViewModel.confirmedBalance.value @@ -61,7 +57,10 @@ fun DonateScreen( } if (artist.value == null) { - EmptyState(firstLine = "404", secondLine = "This artist has not published a key you can donate to.") + EmptyState( + firstLine = "404", + secondLine = "This artist has not published a key you can donate to." + ) return } @@ -76,7 +75,11 @@ fun DonateScreen( fontWeight = FontWeight.SemiBold, modifier = Modifier.padding(bottom = 5.dp) ) - OutlinedTextField(value = amount.value, onValueChange = { amount.value = it }, modifier = Modifier.padding(bottom = 10.dp)) + OutlinedTextField( + value = amount.value, + onValueChange = { amount.value = it }, + modifier = Modifier.padding(bottom = 10.dp) + ) Row { Button( onClick = { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreenViewModel.kt index 95f762d0e..006c63e71 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/donate/DonateScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.donate -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import nl.tudelft.trustchain.musicdao.core.repositories.ArtistRepository import nl.tudelft.trustchain.musicdao.core.repositories.model.Artist @@ -10,14 +8,12 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) @HiltViewModel class DonateScreenViewModel @Inject constructor(val artistRepository: ArtistRepository) : ViewModel() { var artist: StateFlow = MutableStateFlow(null) - @RequiresApi(Build.VERSION_CODES.O) suspend fun setArtist(publicKey: String) { artist = artistRepository.getArtistStateFlow(publicKey) } diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreen.kt index a1ab001ce..68a2793d1 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.home -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth @@ -22,7 +20,6 @@ import nl.tudelft.trustchain.musicdao.ui.screens.search.SearchScreenViewModel import com.google.accompanist.swiperefresh.SwipeRefresh import com.google.accompanist.swiperefresh.rememberSwipeRefreshState -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @OptIn(ExperimentalFoundationApi::class) @Composable diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreenViewModel.kt index e57b21859..5e03199d2 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/home/HomeScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.home -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -13,7 +11,6 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) @HiltViewModel class HomeScreenViewModel @Inject diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/EditProfileScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/EditProfileScreen.kt index f1bf39616..b04d5c036 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/EditProfileScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/EditProfileScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profile -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState @@ -18,7 +16,6 @@ import androidx.navigation.NavController import nl.tudelft.trustchain.musicdao.ui.SnackbarHandler import kotlinx.coroutines.launch -@RequiresApi(Build.VERSION_CODES.O) @Composable fun EditProfileScreen(navController: NavController) { val ownProfileViewScreenModel: MyProfileScreenViewModel = hiltViewModel() diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreen.kt index 908824528..6635e90ff 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profile -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize @@ -13,7 +11,6 @@ import androidx.compose.ui.Modifier import androidx.navigation.NavController import nl.tudelft.trustchain.musicdao.ui.components.EmptyState -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @OptIn(ExperimentalFoundationApi::class) @Composable diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreenViewModel.kt index 4669924e4..f1d324e2d 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/MyProfileScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profile -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import nl.tudelft.trustchain.musicdao.core.ipv8.MusicCommunity @@ -13,7 +11,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) @HiltViewModel class MyProfileScreenViewModel @Inject diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/Profile.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/Profile.kt index 0fffb9e04..9188ff7f3 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/Profile.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/Profile.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profile -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -26,7 +24,6 @@ import nl.tudelft.trustchain.musicdao.ui.navigation.Screen @ExperimentalFoundationApi @ExperimentalMaterialApi -@RequiresApi(Build.VERSION_CODES.O) @Composable fun Profile( artist: Artist, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreen.kt index 3ab841132..51fe10beb 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreen.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profile import android.app.Activity -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize @@ -20,7 +18,6 @@ import dagger.hilt.android.EntryPointAccessors @ExperimentalMaterialApi @ExperimentalFoundationApi -@RequiresApi(Build.VERSION_CODES.O) @Composable fun ProfileScreen( publicKey: String, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreenViewModel.kt index 543a4f033..abc26367f 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profile/ProfileScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profile -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope @@ -15,7 +13,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch -@RequiresApi(Build.VERSION_CODES.O) class ProfileScreenViewModel @AssistedInject constructor( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profileMenu/ProfileMenuScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profileMenu/ProfileMenuScreen.kt index 2e87dd421..790f4faa2 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profileMenu/ProfileMenuScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/profileMenu/ProfileMenuScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.profileMenu -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -22,7 +20,6 @@ import androidx.compose.ui.unit.sp import androidx.navigation.NavController import nl.tudelft.trustchain.musicdao.ui.navigation.Screen -@RequiresApi(Build.VERSION_CODES.O) @Composable fun ProfileMenuScreen(navController: NavController) { Column { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreen.kt index ef89bd4f6..b79c93e2d 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreen.kt @@ -1,8 +1,6 @@ package nl.tudelft.trustchain.musicdao.ui.screens.release import android.app.Activity -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -43,7 +41,6 @@ import nl.tudelft.trustchain.musicdao.ui.screens.torrent.TorrentStatusScreen import dagger.hilt.android.EntryPointAccessors import java.io.File -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalMaterialApi @Composable fun ReleaseScreen( @@ -224,7 +221,6 @@ fun ReleaseScreen( } } -@RequiresApi(Build.VERSION_CODES.O) @Composable fun Header( album: Album, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreenViewModel.kt index 5d0350033..b502e9c40 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/ReleaseScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.release -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.* import nl.tudelft.trustchain.musicdao.core.cache.CacheDatabase import nl.tudelft.trustchain.musicdao.core.cache.entities.AlbumEntity @@ -19,7 +17,6 @@ import kotlinx.coroutines.isActive import kotlinx.coroutines.launch @OptIn(DelicateCoroutinesApi::class) -@RequiresApi(Build.VERSION_CODES.O) class ReleaseScreenViewModel @AssistedInject constructor( diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialog.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialog.kt index 3815029da..de0dc7e22 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialog.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialog.kt @@ -3,9 +3,7 @@ package nl.tudelft.trustchain.musicdao.ui.screens.release.create import android.annotation.SuppressLint import android.content.Intent import android.net.Uri -import android.os.Build import android.os.Bundle -import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -35,7 +33,6 @@ import kotlinx.coroutines.launch import java.time.Instant @SuppressLint("UnusedMaterialScaffoldPaddingParameter") -@RequiresApi(Build.VERSION_CODES.O) @ExperimentalComposeUiApi @Composable fun CreateReleaseDialog(navController: NavController) { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialogViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialogViewModel.kt index fb7a989b1..5ea9e4cd4 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialogViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/release/create/CreateReleaseDialogViewModel.kt @@ -2,8 +2,6 @@ package nl.tudelft.trustchain.musicdao.ui.screens.release.create import android.content.Context import android.net.Uri -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import nl.tudelft.trustchain.musicdao.core.repositories.album.CreateReleaseUseCase import dagger.hilt.android.lifecycle.HiltViewModel @@ -14,7 +12,6 @@ class CreateReleaseDialogViewModel @Inject constructor(private val createReleaseUseCase: CreateReleaseUseCase) : ViewModel() { - @RequiresApi(Build.VERSION_CODES.O) suspend fun createRelease( artist: String, title: String, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreen.kt index c2a95577b..d647d9ea5 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreen.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.search -import android.os.Build -import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth @@ -20,7 +18,6 @@ import nl.tudelft.trustchain.musicdao.ui.components.releases.ReleaseList @ExperimentalFoundationApi @OptIn(ExperimentalMaterialApi::class) -@RequiresApi(Build.VERSION_CODES.O) @Composable fun SearchScreen( navController: NavController, diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreenViewModel.kt index 24f577e66..144f3cfb2 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/search/SearchScreenViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.search -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -17,7 +15,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) @HiltViewModel class SearchScreenViewModel @Inject @@ -50,7 +47,6 @@ class SearchScreenViewModel } } - @RequiresApi(Build.VERSION_CODES.O) fun searchDebounced(searchText: String) { _searchQuery.value = searchText @@ -71,7 +67,6 @@ class SearchScreenViewModel return downloadedAlbums } - @RequiresApi(Build.VERSION_CODES.O) private suspend fun search(searchText: String) { if (searchText.isEmpty()) { _searchResult.value = downloadedFirstInListOfAlbums(albumRepository.getAlbums()) diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreen.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreen.kt index 890ddd01c..e33012653 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreen.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreen.kt @@ -2,9 +2,7 @@ package nl.tudelft.trustchain.musicdao.ui.screens.settings import android.content.Intent import android.net.Uri -import android.os.Build import android.os.Bundle -import androidx.annotation.RequiresApi import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.material.ExperimentalMaterialApi @@ -20,7 +18,6 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterialApi::class) @Composable -@RequiresApi(Build.VERSION_CODES.O) fun SettingsScreen(settingsScreenViewModel: SettingsScreenViewModel) { val coroutine = rememberCoroutineScope() val context = LocalContext.current diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreenViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreenViewModel.kt index 1c883b87a..2802bf74d 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreenViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/settings/SettingsScreenViewModel.kt @@ -2,9 +2,7 @@ package nl.tudelft.trustchain.musicdao.ui.screens.settings import android.content.Context import android.net.Uri -import android.os.Build import android.util.Log -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import nl.tudelft.trustchain.musicdao.CachePath import nl.tudelft.trustchain.musicdao.core.repositories.album.BatchPublisher @@ -21,7 +19,6 @@ class SettingsScreenViewModel private val cachePath: CachePath, private val androidURIController: AndroidURIController ) : ViewModel() { - @RequiresApi(Build.VERSION_CODES.O) suspend fun publishBatch( uri: Uri, context: Context diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/wallet/BitcoinWalletViewModel.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/wallet/BitcoinWalletViewModel.kt index 065efc243..1cd1cc8d6 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/wallet/BitcoinWalletViewModel.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/screens/wallet/BitcoinWalletViewModel.kt @@ -1,7 +1,5 @@ package nl.tudelft.trustchain.musicdao.ui.screens.wallet -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import nl.tudelft.trustchain.musicdao.core.repositories.ArtistRepository @@ -68,7 +66,6 @@ class BitcoinWalletViewModel return walletService.wallet() } - @RequiresApi(Build.VERSION_CODES.O) suspend fun donate( publicKey: String, amount: String diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/AndroidURIController.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/AndroidURIController.kt index c8c0d373e..203d4907c 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/AndroidURIController.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/AndroidURIController.kt @@ -2,8 +2,6 @@ package nl.tudelft.trustchain.musicdao.ui.util import android.content.Context import android.net.Uri -import android.os.Build -import androidx.annotation.RequiresApi import nl.tudelft.trustchain.musicdao.CachePath import org.apache.commons.io.FileUtils import java.io.File @@ -11,7 +9,6 @@ import java.io.InputStream import java.nio.file.Path import javax.inject.Inject -@RequiresApi(Build.VERSION_CODES.O) class AndroidURIController @Inject constructor(cacheDir: CachePath) { diff --git a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/Parsing.kt b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/Parsing.kt index dbaac2a61..31ef88ec9 100644 --- a/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/Parsing.kt +++ b/musicdao/src/main/java/nl/tudelft/trustchain/musicdao/ui/util/Parsing.kt @@ -1,14 +1,11 @@ package nl.tudelft.trustchain.musicdao.ui.util -import android.os.Build -import androidx.annotation.RequiresApi import java.time.Instant import java.time.ZoneId import java.time.format.DateTimeFormatter import java.time.format.FormatStyle import java.util.* -@RequiresApi(Build.VERSION_CODES.O) fun dateToShortString(instant: String): String { return try { val time = Instant.parse(instant) @@ -23,7 +20,6 @@ fun dateToShortString(instant: String): String { } } -@RequiresApi(Build.VERSION_CODES.O) fun dateToLongString(instant: String): String { return try { val time = Instant.parse(instant) diff --git a/peerai/build.gradle b/peerai/build.gradle index 1f7271655..6adafce30 100644 --- a/peerai/build.gradle +++ b/peerai/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'kotlinx-serialization' android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/valuetransfer/build.gradle b/valuetransfer/build.gradle index 67e243474..b0734edf3 100644 --- a/valuetransfer/build.gradle +++ b/valuetransfer/build.gradle @@ -29,7 +29,7 @@ repositories { android { defaultConfig { - minSdkVersion 24 + minSdkVersion 26 compileSdk 34 targetSdkVersion 34 diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ChatMediaDialog.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ChatMediaDialog.kt index f04a5e552..4b21cc223 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ChatMediaDialog.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ChatMediaDialog.kt @@ -2,7 +2,6 @@ package nl.tudelft.trustchain.valuetransfer.dialogs import android.app.Dialog import android.content.Context -import android.os.Build import android.os.Bundle import android.view.* import androidx.appcompat.widget.AppCompatTextView @@ -20,7 +19,6 @@ import java.text.SimpleDateFormat import java.util.* import android.widget.LinearLayout import android.widget.TextView -import androidx.annotation.RequiresApi import androidx.viewpager.widget.ViewPager import nl.tudelft.trustchain.valuetransfer.ui.contacts.ChatMediaDetailAdapter import nl.tudelft.trustchain.valuetransfer.ui.contacts.ChatMediaItem @@ -224,7 +222,6 @@ class ChatMediaDialog( } } - @RequiresApi(Build.VERSION_CODES.Q) override fun onMenuItemClick(item: MenuItem?): Boolean { when (item?.itemId) { R.id.actionSaveFile -> { diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeGatewayDialog.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeGatewayDialog.kt index 0fdf754c7..2d7304e95 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeGatewayDialog.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeGatewayDialog.kt @@ -1,10 +1,8 @@ package nl.tudelft.trustchain.valuetransfer.dialogs -import android.os.Build import android.os.Bundle import android.os.Handler import android.widget.* -import androidx.annotation.RequiresApi import androidx.core.view.isVisible import androidx.lifecycle.Observer import com.google.android.material.bottomsheet.BottomSheetBehavior @@ -26,7 +24,6 @@ class ExchangeGatewayDialog( private val name: String, private val amount: Long?, ) : VTDialogFragment() { - @RequiresApi(Build.VERSION_CODES.O) override fun onCreateDialog(savedInstanceState: Bundle?): BottomSheetDialog { return activity?.let { val bottomSheetDialog = diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransactionDialog.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransactionDialog.kt index 06c5e870a..b9c9986ae 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransactionDialog.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransactionDialog.kt @@ -1,10 +1,8 @@ package nl.tudelft.trustchain.valuetransfer.dialogs -import android.os.Build import android.os.Bundle import android.os.Handler import android.widget.* -import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat import androidx.core.view.isVisible import com.google.android.material.bottomsheet.BottomSheetBehavior @@ -30,7 +28,6 @@ class ExchangeTransactionDialog( ) : VTDialogFragment() { private val dateFormat = SimpleDateFormat("d MMMM yyyy, HH:mm", Locale.ENGLISH) - @RequiresApi(Build.VERSION_CODES.O) override fun onCreateDialog(savedInstanceState: Bundle?): BottomSheetDialog { return activity?.let { val bottomSheetDialog = diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransferMoneyLinkDialog.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransferMoneyLinkDialog.kt index 5992b0696..bc1071db5 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransferMoneyLinkDialog.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/ExchangeTransferMoneyLinkDialog.kt @@ -2,12 +2,10 @@ package nl.tudelft.trustchain.valuetransfer.dialogs import android.content.Intent import android.graphics.Color -import android.os.Build import android.os.Bundle import android.util.Log import android.view.View import android.widget.* -import androidx.annotation.RequiresApi import androidx.core.widget.doAfterTextChanged import androidx.lifecycle.Observer import com.android.volley.Request @@ -47,7 +45,6 @@ class ExchangeTransferMoneyLinkDialog( TransactionRepository(IPv8Android.getInstance().getOverlay()!!, gatewayStoreLink) } - @RequiresApi(Build.VERSION_CODES.O) override fun onCreateDialog(savedInstanceState: Bundle?): BottomSheetDialog { return activity?.let { val bottomSheetDialog = @@ -174,7 +171,6 @@ class ExchangeTransferMoneyLinkDialog( ?: throw IllegalStateException(resources.getString(R.string.text_activity_not_null_requirement)) } - @RequiresApi(Build.VERSION_CODES.O) internal fun createPaymentId( amount: Int, iban: String? = null diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/IdentityOnboardingDialog.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/IdentityOnboardingDialog.kt index e8eb8c438..75181ab55 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/IdentityOnboardingDialog.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/dialogs/IdentityOnboardingDialog.kt @@ -4,7 +4,6 @@ import android.app.Activity import android.app.Dialog import android.content.Intent import android.nfc.NfcAdapter -import android.os.Build import android.os.Bundle import android.os.Handler import android.provider.Settings @@ -232,20 +231,9 @@ class IdentityOnboardingDialog : VTDialogFragment(), View.OnClickListener { private fun openNFCSettings() { val intent = Intent().apply { - when { - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> { - action = Settings.ACTION_NFC_SETTINGS - putExtra(Settings.EXTRA_APP_PACKAGE, parentActivity.packageName) - } - - else -> { - action = "android.settings.WIRELESS_SETTINGS" - putExtra("app_package", parentActivity.packageName) - putExtra("app_uid", parentActivity.applicationInfo.uid) - } - } + action = Settings.ACTION_NFC_SETTINGS + putExtra(Settings.EXTRA_APP_PACKAGE, parentActivity.packageName) } - startActivity(intent) } diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/contacts/ContactChatFragment.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/contacts/ContactChatFragment.kt index fe70e442f..fb9ce7c50 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/contacts/ContactChatFragment.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/contacts/ContactChatFragment.kt @@ -9,7 +9,6 @@ import android.content.pm.PackageManager import android.graphics.Color import android.location.Location import android.net.Uri -import android.os.Build import android.os.Bundle import android.os.Handler import android.provider.MediaStore @@ -1218,7 +1217,6 @@ class ContactChatFragment : VTFragment(R.layout.fragment_contacts_chat) { binding.clSearchFilter.isVisible = !hide val typedValue = TypedValue() - parentActivity.theme.resolveAttribute( if (hide) R.attr.colorPrimary else R.attr.colorAccent, typedValue, @@ -1226,18 +1224,7 @@ class ContactChatFragment : VTFragment(R.layout.fragment_contacts_chat) { ) val color = ContextCompat.getColor(requireContext(), typedValue.resourceId) - - parentActivity.window.statusBarColor = - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - val currentTheme = appPreferences.getCurrentTheme() - if (currentTheme == AppPreferences.APP_THEME_NIGHT) { - color - } else { - Color.BLACK - } - } else { - color - } + parentActivity.window.statusBarColor = color val actionBarTypedValue = TypedValue() parentActivity.theme.resolveAttribute( diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/identity/IdentityFragment.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/identity/IdentityFragment.kt index b351bfb6b..e246a8d65 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/identity/IdentityFragment.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/identity/IdentityFragment.kt @@ -523,6 +523,7 @@ class IdentityFragment : VTFragment(R.layout.fragment_identity) { } } + @Deprecated("Deprecated in Java") @Suppress("DEPRECATION") override fun onActivityResult( requestCode: Int, @@ -534,7 +535,7 @@ class IdentityFragment : VTFragment(R.layout.fragment_identity) { if (data != null) { data.data?.let { uri -> val bitmap = - if (Build.VERSION.SDK_INT >= 29) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { val source = ImageDecoder.createSource(parentActivity.contentResolver, uri) ImageDecoder.decodeBitmap(source) } else { diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/NotificationHandler.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/NotificationHandler.kt index 1e14e3714..b94cfa2f4 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/NotificationHandler.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/NotificationHandler.kt @@ -41,43 +41,41 @@ class NotificationHandler( private val notificationManager by lazy { parentActivity.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager } - private lateinit var messagesChannel: NotificationChannel - private lateinit var transactionsChannel: NotificationChannel + private var messagesChannel: NotificationChannel + private var transactionsChannel: NotificationChannel private var notificationCount = 0 init { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - messagesChannel = - if (notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_MESSAGES_ID) == null) { - NotificationChannel( - NOTIFICATION_CHANNEL_MESSAGES_ID, - NOTIFICATION_CHANNEL_MESSAGES_NAME, - NotificationManager.IMPORTANCE_HIGH - ).apply { - description = NOTIFICATION_CHANNEL_MESSAGES_DESCRIPTION - setShowBadge(true) - notificationManager.createNotificationChannel(this) - } - } else { - notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_MESSAGES_ID) + messagesChannel = + if (notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_MESSAGES_ID) == null) { + NotificationChannel( + NOTIFICATION_CHANNEL_MESSAGES_ID, + NOTIFICATION_CHANNEL_MESSAGES_NAME, + NotificationManager.IMPORTANCE_HIGH + ).apply { + description = NOTIFICATION_CHANNEL_MESSAGES_DESCRIPTION + setShowBadge(true) + notificationManager.createNotificationChannel(this) } + } else { + notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_MESSAGES_ID) + } - transactionsChannel = - if (notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_TRANSACTIONS_ID) == null) { - NotificationChannel( - NOTIFICATION_CHANNEL_TRANSACTIONS_ID, - NOTIFICATION_CHANNEL_TRANSACTIONS_NAME, - NotificationManager.IMPORTANCE_HIGH - ).apply { - description = NOTIFICATION_CHANNEL_TRANSACTIONS_DESCRIPTION - notificationManager.createNotificationChannel(this) - } - } else { - notificationManager.getNotificationChannel( - NOTIFICATION_CHANNEL_TRANSACTIONS_ID - ) + transactionsChannel = + if (notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_TRANSACTIONS_ID) == null) { + NotificationChannel( + NOTIFICATION_CHANNEL_TRANSACTIONS_ID, + NOTIFICATION_CHANNEL_TRANSACTIONS_NAME, + NotificationManager.IMPORTANCE_HIGH + ).apply { + description = NOTIFICATION_CHANNEL_TRANSACTIONS_DESCRIPTION + notificationManager.createNotificationChannel(this) } - } + } else { + notificationManager.getNotificationChannel( + NOTIFICATION_CHANNEL_TRANSACTIONS_ID + ) + } } fun cancelAll() { @@ -109,6 +107,7 @@ class NotificationHandler( chatMessage.attachment?.let { attachment -> attachment(peer, attachment.type, chatMessage.message, isAppInForeground) } + TYPE_TRANSACTION -> transaction( peer, @@ -154,14 +153,11 @@ class NotificationHandler( } fun getNotificationChannelStatus(channelID: String): String { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - return if (notificationManager.getNotificationChannel(channelID).importance != NotificationManager.IMPORTANCE_NONE) { - NOTIFICATION_STATUS_ENABLED - } else { - NOTIFICATION_STATUS_DISABLED - } + return if (notificationManager.getNotificationChannel(channelID).importance != NotificationManager.IMPORTANCE_NONE) { + NOTIFICATION_STATUS_ENABLED + } else { + NOTIFICATION_STATUS_DISABLED } - return NOTIFICATION_STATUS_UNKNOWN } fun typeOfMessage(chatMessage: ChatMessage): String { @@ -174,6 +170,7 @@ class NotificationHandler( notificationsMessages && chatMessage.message.isNotBlank() && chatMessage.attachment == null && chatMessage.transactionHash == null -> TYPE_MESSAGE + notificationsMessages && chatMessage.attachment != null -> TYPE_ATTACHMENT notificationsTransactions && chatMessage.transactionHash != null -> TYPE_TRANSACTION else -> "" @@ -243,21 +240,25 @@ class NotificationHandler( getEmojiByUnicode(EMOJI_CAMERA), ATTACHMENT_TYPE_PHOTO ) + MessageAttachment.TYPE_FILE -> listOf( getEmojiByUnicode(EMOJI_FILE), ATTACHMENT_TYPE_FILE ) + MessageAttachment.TYPE_CONTACT -> listOf( getEmojiByUnicode(EMOJI_CONTACT), ATTACHMENT_TYPE_CONTACT ) + MessageAttachment.TYPE_LOCATION -> listOf( getEmojiByUnicode(EMOJI_LOCATION), ATTACHMENT_TYPE_LOCATION ) + MessageAttachment.TYPE_IDENTITY_ATTRIBUTE -> listOf( getEmojiByUnicode( @@ -265,6 +266,7 @@ class NotificationHandler( ), ATTACHMENT_TYPE_IDENTITY_ATTRIBUTE ) + MessageAttachment.TYPE_TRANSFER_REQUEST -> { when { message != "" -> @@ -272,6 +274,7 @@ class NotificationHandler( R.string.text_contact_chat_incoming_transfer_request_with_message, message ) + else -> "" }.let { text -> listOf( @@ -281,6 +284,7 @@ class NotificationHandler( ) } } + else -> listOf() }.joinToString(" ").let { text -> if (isAppInForeground) { @@ -419,7 +423,10 @@ class NotificationHandler( val args = Bundle().apply { - putString(ValueTransferMainActivity.ARG_PUBLIC_KEY, peer.publicKey.keyToBin().toHex()) + putString( + ValueTransferMainActivity.ARG_PUBLIC_KEY, + peer.publicKey.keyToBin().toHex() + ) putString( ValueTransferMainActivity.ARG_NAME, contact?.name ?: ( diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/SettingsFragment.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/SettingsFragment.kt index f80e4beac..0364b76f8 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/SettingsFragment.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/ui/settings/SettingsFragment.kt @@ -2,11 +2,9 @@ package nl.tudelft.trustchain.valuetransfer.ui.settings import android.content.Intent import android.content.pm.PackageManager -import android.os.Build import android.os.Bundle import android.provider.Settings import android.view.* -import androidx.annotation.RequiresApi import androidx.core.app.NotificationManagerCompat import androidx.core.view.isVisible import androidx.lifecycle.MutableLiveData @@ -25,9 +23,12 @@ import nl.tudelft.trustchain.valuetransfer.dialogs.OptionsDialog class SettingsFragment : VTFragment(R.layout.fragment_settings) { private val binding by viewBinding(FragmentSettingsBinding::bind) - private val notificationsStatus = MutableLiveData(NotificationHandler.NOTIFICATION_STATUS_DISABLED) - private val notificationsMessageStatus = MutableLiveData(NotificationHandler.NOTIFICATION_STATUS_UNKNOWN) - private val notificationsTransactionStatus = MutableLiveData(NotificationHandler.NOTIFICATION_STATUS_UNKNOWN) + private val notificationsStatus = + MutableLiveData(NotificationHandler.NOTIFICATION_STATUS_DISABLED) + private val notificationsMessageStatus = + MutableLiveData(NotificationHandler.NOTIFICATION_STATUS_UNKNOWN) + private val notificationsTransactionStatus = + MutableLiveData(NotificationHandler.NOTIFICATION_STATUS_UNKNOWN) override fun onCreateView( inflater: LayoutInflater, @@ -44,7 +45,6 @@ class SettingsFragment : VTFragment(R.layout.fragment_settings) { setHasOptionsMenu(true) } - @RequiresApi(Build.VERSION_CODES.O) override fun onViewCreated( view: View, savedInstanceState: Bundle? @@ -146,7 +146,8 @@ class SettingsFragment : VTFragment(R.layout.fragment_settings) { } else { "" } - binding.llNotificationsSpecific.isVisible = it == NotificationHandler.NOTIFICATION_STATUS_ENABLED + binding.llNotificationsSpecific.isVisible = + it == NotificationHandler.NOTIFICATION_STATUS_ENABLED } ) @@ -169,21 +170,11 @@ class SettingsFragment : VTFragment(R.layout.fragment_settings) { } } - @RequiresApi(Build.VERSION_CODES.O) fun openChannelSettings() { val intent = Intent().apply { - when { - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> { - action = Settings.ACTION_APP_NOTIFICATION_SETTINGS - putExtra(Settings.EXTRA_APP_PACKAGE, parentActivity.packageName) - } - else -> { - action = "android.settings.APP_NOTIFICATION_SETTINGS" - putExtra("app_package", parentActivity.packageName) - putExtra("app_uid", parentActivity.applicationInfo.uid) - } - } + action = Settings.ACTION_APP_NOTIFICATION_SETTINGS + putExtra(Settings.EXTRA_APP_PACKAGE, parentActivity.packageName) } startActivity(intent) } diff --git a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/util/SecurityUtil.kt b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/util/SecurityUtil.kt index 2b244807f..94ef528c1 100644 --- a/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/util/SecurityUtil.kt +++ b/valuetransfer/src/main/java/nl/tudelft/trustchain/valuetransfer/util/SecurityUtil.kt @@ -1,9 +1,7 @@ package nl.tudelft.trustchain.valuetransfer.util -import android.os.Build import android.security.keystore.KeyGenParameterSpec import android.security.keystore.KeyProperties -import androidx.annotation.RequiresApi import java.lang.RuntimeException import java.math.BigInteger import java.net.URLDecoder @@ -17,7 +15,6 @@ object SecurityUtil { private const val KEY_ALIAS = "nl.tudelft.trustchain.key" private const val ANDROID_KEYSTORE = "AndroidKeyStore" - @RequiresApi(Build.VERSION_CODES.M) fun generateKey(): KeyPair { // We are creating a RSA key pair val keyPairGenerator: KeyPairGenerator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA, ANDROID_KEYSTORE)