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 @@ + + + + +