diff --git a/app/build.gradle b/app/build.gradle
index 0a201b2..5fcdf8c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -71,8 +71,8 @@ dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.3.5'
//Hilt
- implementation "com.google.dagger:hilt-android:2.35"
- kapt "com.google.dagger:hilt-android-compiler:2.35"
+ implementation "com.google.dagger:hilt-android:2.38.1"
+ kapt "com.google.dagger:hilt-compiler:2.38.1"
kapt 'androidx.hilt:hilt-compiler:1.0.0'
@@ -114,6 +114,7 @@ dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'com.github.florent37:viewanimator:1.1.2'
implementation 'com.facebook.shimmer:shimmer:0.5.0'
+ implementation 'com.github.GrenderG:Toasty:1.5.2'
//NETWORKING
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
@@ -122,11 +123,9 @@ dependencies {
implementation 'com.squareup.okhttp3:logging-interceptor:4.2.1'
//BILLING
- implementation 'com.android.billingclient:billing:3.0.2'
+ implementation 'com.android.billingclient:billing:4.0.0'
+ implementation "com.android.billingclient:billing-ktx:4.0.0"
- //design
- implementation 'com.google.android.material:material:1.5.0-alpha05'
- implementation 'com.github.GrenderG:Toasty:1.5.2'
//images
implementation "io.coil-kt:coil:1.4.0"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b3f166f..7a64dfe 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,7 +2,6 @@
-
@@ -11,18 +10,23 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
+ android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/DarkTheme">
+ android:name=".ui.fragments.SplashActivity"
+ android:exported="true"
+ android:theme="@style/SplashAppTheme">
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/techriz/andronix/donation/MainActivity.kt b/app/src/main/java/com/techriz/andronix/donation/MainActivity.kt
index d7079fc..93660a4 100644
--- a/app/src/main/java/com/techriz/andronix/donation/MainActivity.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/MainActivity.kt
@@ -33,8 +33,6 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
-
-
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
diff --git a/app/src/main/java/com/techriz/andronix/donation/di/MiscModule.kt b/app/src/main/java/com/techriz/andronix/donation/di/MiscModule.kt
index 0a36904..748c99a 100644
--- a/app/src/main/java/com/techriz/andronix/donation/di/MiscModule.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/di/MiscModule.kt
@@ -1,6 +1,7 @@
package com.techriz.andronix.donation.di
import android.content.Context
+import com.techriz.andronix.donation.ui.fragments.Loader
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@@ -8,11 +9,11 @@ import dagger.hilt.android.components.FragmentComponent
import dagger.hilt.android.qualifiers.ActivityContext
import dagger.hilt.android.scopes.FragmentScoped
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import studio.com.techriz.andronix.ui.Loader
+
@Module
@InstallIn(FragmentComponent::class)
-object MiscModule {
+object MiscModule {
@Provides
@FragmentScoped
fun providesLoader(@ActivityContext context: Context): Loader {
diff --git a/app/src/main/java/com/techriz/andronix/donation/repository/BillingRepository.kt b/app/src/main/java/com/techriz/andronix/donation/repository/BillingRepository.kt
index 4020580..73790d1 100644
--- a/app/src/main/java/com/techriz/andronix/donation/repository/BillingRepository.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/repository/BillingRepository.kt
@@ -191,7 +191,11 @@ class BillingRepository @Inject constructor(
private suspend fun verifyPurchase(purchase: Purchase) {
try {
val response =
- purchaseAPI.getPurchaseVerification(purchase.sku, purchase.purchaseToken, "true")
+ purchaseAPI.getPurchaseVerification(
+ purchase.skus.first(),
+ purchase.purchaseToken,
+ "true"
+ )
.awaitResponse()
if (response.isSuccessful && response.body() != null) {
response.body()?.orderID.let { orderIdFromServer ->
diff --git a/app/src/main/java/com/techriz/andronix/donation/repository/SettingsRepository.kt b/app/src/main/java/com/techriz/andronix/donation/repository/SettingsRepository.kt
index ca75bdf..30cba02 100644
--- a/app/src/main/java/com/techriz/andronix/donation/repository/SettingsRepository.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/repository/SettingsRepository.kt
@@ -8,6 +8,7 @@ import androidx.datastore.preferences.core.emptyPreferences
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import com.techriz.andronix.donation.utils.Constants.DARK_MODE
+import com.techriz.andronix.donation.utils.Constants.LIGHT_MODE
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.catch
@@ -33,9 +34,7 @@ class SettingsRepository @Inject constructor(
suspend fun getTheme(): String {
- val theme = context.settingsDataStore.getValueAsFlow(THEME_KEY, DARK_MODE).first()
- println("GetTheme $theme")
- return theme
+ return context.settingsDataStore.getValueAsFlow(THEME_KEY, DARK_MODE).first()
}
fun getThemeLive(): Flow {
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardFragment.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardFragment.kt
index 11afb6a..e03de1b 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardFragment.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardFragment.kt
@@ -2,6 +2,7 @@ package com.techriz.andronix.donation.ui.fragments
import android.annotation.SuppressLint
import android.os.Bundle
+import android.text.method.LinkMovementMethod
import android.view.Gravity
import android.view.View
import android.widget.ImageView
@@ -22,6 +23,7 @@ import com.techriz.andronix.donation.R
import com.techriz.andronix.donation.databinding.DashboardFragmentBinding
import com.techriz.andronix.donation.databinding.LoginFirstSheetBinding
import com.techriz.andronix.donation.databinding.UserInfoBottomsheetBinding
+import com.techriz.andronix.donation.utils.ActionUtils
import com.techriz.andronix.donation.utils.NavigationAnimations
import com.techriz.andronix.donation.utils.NavigationAnimations.safeNavigate
import com.techriz.andronix.donation.utils.SkuInfo
@@ -30,8 +32,10 @@ import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class DashboardFragment : Fragment(R.layout.dashboard_fragment) {
+ private val ANDRONIX_PLAY_STORE_URL: String = "https://play.andronix.app"
private lateinit var binding: DashboardFragmentBinding
- val viewModel: DashboardViewModel by viewModels();
+ val viewModel: DashboardViewModel by viewModels()
+
@SuppressLint("WrongConstant")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@@ -39,6 +43,16 @@ class DashboardFragment : Fragment(R.layout.dashboard_fragment) {
binding = DashboardFragmentBinding.bind(view)
+ binding.dashboardWarning.movementMethod = LinkMovementMethod.getInstance()
+ binding.dashboardWarning.text = viewModel.getWarningSpans(
+ requireContext().getString(
+ R.string.warning_text_dashboard
+ )
+ ) {
+ ActionUtils.getBrowser(requireContext(), ANDRONIX_PLAY_STORE_URL)
+ }
+
+
binding.hamMenu.setOnClickListener {
val navDrawer = activity?.findViewById(R.id.drawer_layout)
navDrawer?.let {
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardViewModel.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardViewModel.kt
index 418380a..1c0138e 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardViewModel.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/DashboardViewModel.kt
@@ -1,5 +1,10 @@
package com.techriz.andronix.donation.ui.fragments
+import android.text.SpannableString
+import android.text.Spanned
+import android.text.style.ClickableSpan
+import android.text.style.StyleSpan
+import android.view.View
import androidx.lifecycle.ViewModel
import com.google.firebase.auth.ktx.auth
import com.google.firebase.ktx.Firebase
@@ -28,11 +33,39 @@ class DashboardViewModel @Inject constructor() : ViewModel() {
}
fun getUserPfp(): String {
- val email = getUserEmail() ?: ('a'..'z').random() + (0..1000).random()
- .toString() + ('a'..'z').random() + ('a'..'z').random()
+ val email = getUserEmail() ?: (('a'..'z').random() + (0..1000).random()
+ .toString() + ('a'..'z').random() + ('a'..'z').random())
return Firebase.auth.currentUser?.photoUrl?.toString()
?: "https://avatars.dicebear.com/api/jdenticon/$email.svg"
}
+ fun getWarningSpans(
+
+ text: String,
+ downloadLinkFunction: () -> Unit,
+ ): SpannableString {
+ val ss = SpannableString(text)
+ val clickableSpan1: ClickableSpan = object : ClickableSpan() {
+ override fun onClick(widget: View) {
+ downloadLinkFunction()
+ }
+ }
+ val styleSpan = StyleSpan(android.graphics.Typeface.BOLD) // Span to make text bold
+
+ ss.setSpan(
+ clickableSpan1,
+ ss.indexOf("here"),
+ ss.indexOf("here") + 4,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ ss.setSpan(
+ styleSpan,
+ ss.indexOf("and"),
+ ss.indexOf("App"),
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ return ss
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/Loader.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/Loader.kt
index 158dd3a..b8036cc 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/Loader.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/Loader.kt
@@ -5,6 +5,7 @@ import android.view.LayoutInflater
import com.deishelon.roundedbottomsheet.RoundedBottomSheetDialog
import com.techriz.andronix.donation.R
import com.techriz.andronix.donation.databinding.LoaderSheetBinding
+import javax.inject.Inject
class Loader(val context: Context) {
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/SplashActivity.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/SplashActivity.kt
new file mode 100644
index 0000000..9e5aff2
--- /dev/null
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/SplashActivity.kt
@@ -0,0 +1,60 @@
+package com.techriz.andronix.donation.ui.fragments
+
+import android.content.Intent
+import android.os.Bundle
+import android.os.PersistableBundle
+import android.widget.Toast
+import androidx.activity.viewModels
+import com.google.android.material.snackbar.Snackbar
+import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.lifecycleScope
+import androidx.navigation.findNavController
+import androidx.navigation.ui.AppBarConfiguration
+import androidx.navigation.ui.navigateUp
+import androidx.navigation.ui.setupActionBarWithNavController
+import com.github.florent37.viewanimator.ViewAnimator
+import com.techriz.andronix.donation.MainActivity
+import com.techriz.andronix.donation.R
+import com.techriz.andronix.donation.databinding.ActivitySplashBinding
+import dagger.hilt.android.AndroidEntryPoint
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+@AndroidEntryPoint
+class SplashActivity : AppCompatActivity() {
+ lateinit var binding: ActivitySplashBinding
+
+ val viewModel: SplashViewModel by viewModels()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivitySplashBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ println("Executed!")
+ lifecycleScope.launch(Dispatchers.Main) {
+ viewModel.applyTheme()
+ animateLogo()
+ }
+ }
+
+ private fun animateLogo() {
+ ViewAnimator
+ .animate(binding.logo)
+ .pulse()
+ .duration(350)
+ .repeatCount(1)
+ .onStop {
+ lifecycleScope.launch {
+ this@SplashActivity.startActivity(
+ Intent(
+ this@SplashActivity,
+ MainActivity::class.java
+ )
+ )
+ finish()
+ }
+ }
+ .start()
+ }
+}
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/SplashViewModel.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/SplashViewModel.kt
new file mode 100644
index 0000000..2bc04ac
--- /dev/null
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/SplashViewModel.kt
@@ -0,0 +1,30 @@
+package com.techriz.andronix.donation.ui.fragments;
+
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import com.techriz.andronix.donation.repository.SettingsRepository
+import com.techriz.andronix.donation.utils.Constants.DARK_MODE
+import com.techriz.andronix.donation.utils.Constants.DEVICE_MODE
+import com.techriz.andronix.donation.utils.Constants.LIGHT_MODE
+
+import javax.inject.Inject
+
+import dagger.hilt.android.lifecycle.HiltViewModel
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+
+@ExperimentalCoroutinesApi
+@HiltViewModel
+class SplashViewModel @Inject
+constructor(val settingsRepository: SettingsRepository) : ViewModel() {
+
+ suspend fun applyTheme() {
+ when (settingsRepository.getTheme()) {
+ LIGHT_MODE -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
+ DARK_MODE -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
+ DEVICE_MODE -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/auth/LoginFragment.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/auth/LoginFragment.kt
index 0142420..974127c 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/auth/LoginFragment.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/auth/LoginFragment.kt
@@ -18,6 +18,7 @@ import com.techriz.andronix.donation.R
import com.techriz.andronix.donation.databinding.LoginFragmentBinding
import com.techriz.andronix.donation.repository.AuthStateClass
import com.techriz.andronix.donation.repository.authLog
+import com.techriz.andronix.donation.ui.fragments.Loader
import com.techriz.andronix.donation.utils.ActionUtils
import com.techriz.andronix.donation.utils.ActionUtils.showSnackbar
import com.techriz.andronix.donation.utils.Constants.ANDRONIX_PRIVACY
@@ -28,7 +29,7 @@ import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.onCompletion
-import studio.com.techriz.andronix.ui.Loader
+
import studio.com.techriz.andronix.ui.PasswordResetFragment
import javax.inject.Inject
@@ -50,6 +51,7 @@ class LoginFragment : Fragment(R.layout.login_fragment) {
lateinit var passwordResetSheet: PasswordResetFragment
@Inject
+
lateinit var loader: Loader
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayFragment.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayFragment.kt
index 7679993..51a2bb7 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayFragment.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayFragment.kt
@@ -5,6 +5,7 @@ import android.text.method.LinkMovementMethod
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Toast
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
@@ -23,6 +24,7 @@ import com.techriz.andronix.donation.databinding.PurchaseSuccessDialogBinding
import com.techriz.andronix.donation.repository.BillingRepository
import com.techriz.andronix.donation.repository.PurchaseStateClass
import com.techriz.andronix.donation.repository.billingLog
+import com.techriz.andronix.donation.ui.fragments.Loader
import com.techriz.andronix.donation.utils.*
import com.techriz.andronix.donation.utils.ActionUtils.showSnackbar
import com.techriz.andronix.donation.utils.Constants.ANDRONIX_SUPPORT_EMAIL
@@ -31,10 +33,11 @@ import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.onCompletion
-import studio.com.techriz.andronix.ui.Loader
+
import javax.inject.Inject
@InternalCoroutinesApi
+@ExperimentalCoroutinesApi
@AndroidEntryPoint
class PayFragment : Fragment(R.layout.pay_fragment) {
private lateinit var binding: PayFragmentBinding
@@ -49,7 +52,7 @@ class PayFragment : Fragment(R.layout.pay_fragment) {
@Inject
lateinit var loader: Loader
- @ExperimentalCoroutinesApi
+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@@ -65,6 +68,7 @@ class PayFragment : Fragment(R.layout.pay_fragment) {
if (sku != null) {
when (sku) {
SkuInfo.PRIMUS().sku_id -> {
+
SkuInfo.PRIMUS().apply {
binding.buyTitle.text = title
binding.buyDesc.text = desc
@@ -113,6 +117,7 @@ class PayFragment : Fragment(R.layout.pay_fragment) {
}
}
}
+
}
@ExperimentalCoroutinesApi
@@ -184,6 +189,9 @@ class PayFragment : Fragment(R.layout.pay_fragment) {
is PurchaseStateClass.Error -> {
withContext(Dispatchers.Main) {
loader.stopLoading()
+ println(
+ "Billing Error ${it.message}"
+ )
"Billing error ${it.message}".billingLog(true)
showPostPurchaseDialog(false, it.message)
}
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayViewModel.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayViewModel.kt
index 0202d1d..828b8c8 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayViewModel.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/commerce/PayViewModel.kt
@@ -44,9 +44,11 @@ class PayViewModel @Inject constructor(
@ExperimentalCoroutinesApi
fun getFlowDetails(): FlowDetails {
val uid = Firebase.auth.currentUser?.uid
- val email = Firebase.auth.currentUser?.email
- "UID $uid".log()
- "Email $email".log()
+ var email = Firebase.auth.currentUser?.email
+ if (!uid.isNullOrEmpty() && email.isNullOrEmpty()) {
+ //giving this a temporary email is since the signing is anonymous
+ email = "anonymous@sign.in"
+ }
return if (!uid.isNullOrEmpty() && !email.isNullOrEmpty()) {
println("SKU details $skuDetails")
println("Email $email")
diff --git a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/misc/SettingsFragment.kt b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/misc/SettingsFragment.kt
index e7858fc..9fde4b7 100644
--- a/app/src/main/java/com/techriz/andronix/donation/ui/fragments/misc/SettingsFragment.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/ui/fragments/misc/SettingsFragment.kt
@@ -14,6 +14,7 @@ import androidx.navigation.fragment.findNavController
import com.github.florent37.viewanimator.ViewAnimator
import com.techriz.andronix.donation.R
import com.techriz.andronix.donation.databinding.SettingsFragmentBinding
+import com.techriz.andronix.donation.ui.fragments.Loader
import com.techriz.andronix.donation.utils.Constants.DARK_MODE
import com.techriz.andronix.donation.utils.Constants.DEVICE_MODE
import com.techriz.andronix.donation.utils.Constants.LIGHT_MODE
@@ -25,7 +26,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-import studio.com.techriz.andronix.ui.Loader
+
import javax.inject.Inject
@ExperimentalCoroutinesApi
diff --git a/app/src/main/java/com/techriz/andronix/donation/utils/ActionUtils.kt b/app/src/main/java/com/techriz/andronix/donation/utils/ActionUtils.kt
index 580dceb..93f6d00 100644
--- a/app/src/main/java/com/techriz/andronix/donation/utils/ActionUtils.kt
+++ b/app/src/main/java/com/techriz/andronix/donation/utils/ActionUtils.kt
@@ -48,6 +48,20 @@ object ActionUtils {
}
}
+
+ open fun getBrowser(context: Context, link: String?) {
+ try {
+ val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(link))
+ context.startActivity(browserIntent)
+ } catch (e: java.lang.Exception) {
+ Toast.makeText(
+ context,
+ "No browser found. Please install one to continue.",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+
open fun showToast(message: String, context: Context, isLong: Boolean = false) {
val length = when (isLong) {
true -> Toast.LENGTH_LONG
@@ -255,19 +269,6 @@ object ActionUtils {
}
- open fun getBrowser(context: Context, link: String?) {
- try {
- val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(link))
- context.startActivity(browserIntent)
- } catch (e: java.lang.Exception) {
- Toast.makeText(
- context,
- "No browser found. Please install one to continue.",
- Toast.LENGTH_SHORT
- ).show()
- }
- }
-
fun String.openYoutubeLink(context: Context) {
try {
@@ -341,8 +342,6 @@ object ActionUtils {
}
-
-
fun String.log() {
Log.i("ANDRONIX LOGGER", this)
}
diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml
new file mode 100644
index 0000000..4cf667a
--- /dev/null
+++ b/app/src/main/res/layout/activity_splash.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dashboard_fragment.xml b/app/src/main/res/layout/dashboard_fragment.xml
index b797291..c70383c 100644
--- a/app/src/main/res/layout/dashboard_fragment.xml
+++ b/app/src/main/res/layout/dashboard_fragment.xml
@@ -85,6 +85,18 @@
+
+
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d6..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a307..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d642..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml
new file mode 100644
index 0000000..22d7f00
--- /dev/null
+++ b/app/src/main/res/values-land/dimens.xml
@@ -0,0 +1,3 @@
+
+ 48dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values-w1240dp/dimens.xml b/app/src/main/res/values-w1240dp/dimens.xml
new file mode 100644
index 0000000..d73f4a3
--- /dev/null
+++ b/app/src/main/res/values-w1240dp/dimens.xml
@@ -0,0 +1,3 @@
+
+ 200dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml
new file mode 100644
index 0000000..22d7f00
--- /dev/null
+++ b/app/src/main/res/values-w600dp/dimens.xml
@@ -0,0 +1,3 @@
+
+ 48dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7b4189f..1c655b2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,5 +6,15 @@
Andronix is now a complete Linux on Android utility. We have all the mainstream distributions and many great features, such as the ability to save your commands so that you don\'t forget them again. Sync them to the cloud and access them on any device with an internet connection. We now also have a web app for the same purpose. From downloading offline to priority support, our premium features are unmatched in the whole android market.
All the logos and trademarks used in the app are the properties of their respective owners
+ This is the donations app for Andronix and not the acutal Andronix App to install Linux distributions. Please install the actual app here.
+ SplashActivity
+
+ First Fragment
+ Second Fragment
+ Next
+ Previous
+
+ Hello first fragment
+ Hello second fragment. Arg: %1$s
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..fb7d9be
--- /dev/null
+++ b/app/src/main/res/values/themes.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 680b73f..f56ed87 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,10 +8,10 @@ buildscript {
gradlePluginPortal()
}
dependencies {
- classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha'
+ classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
classpath "com.android.tools.build:gradle:7.0.2"
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.0'
- classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21'
+ classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'
classpath 'com.google.gms:google-services:4.3.10'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/settings.gradle b/settings.gradle
index ede5186..01e77c6 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -11,3 +11,4 @@ dependencyResolutionManagement {
}
rootProject.name = "Andronix Donation"
include ':app'
+include ':casher-android'