diff --git a/.idea/misc.xml b/.idea/misc.xml index e604b49..6779e7e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + @@ -20,6 +21,7 @@ + @@ -28,8 +30,17 @@ + + + + + + + + + @@ -63,24 +74,28 @@ - + - + - + + - + + + + @@ -90,7 +105,7 @@ - + diff --git a/CHANGELOG.md b/CHANGELOG.md index d5567b7..2a75aed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,2 @@ # Version 1.0_r1: -- Initial stable version released. \ No newline at end of file +- Initial stable version. \ No newline at end of file diff --git a/README.md b/README.md index 4b68cf5..bf5aa4e 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ __🖤 Android Studio Tutorials is 100% Free, Open Source and helps you learn An ## 🛠️ Features! - ⭐️ Kotlin & XML examples. +- ⭐️ Binding examples. - ⭐️ Easy to understand examples. - ⭐️ No internet required. - ⭐️ Adaptive themes + Material-You. @@ -56,7 +57,7 @@ __❗Note❗__ Some features are still in progress or needs more improvements an ## 📝 Changelog [here](https://raw.githubusercontent.com/D4rK7355608/com.d4rk.androidtutorials/master/CHANGELOG.md)! -## 🖼️ Screenshots: +## 🖼️ App preview: diff --git a/app/build.gradle b/app/build.gradle index 07513aa..41186cd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,12 +7,12 @@ plugins { } android { compileSdk 32 - def tagName = '1.0_b1' + def tagName = '1.0_r1' defaultConfig { applicationId "com.d4rk.androidtutorials" minSdk 26 targetSdk 32 - versionCode 3 + versionCode 4 versionName tagName archivesBaseName = "com.d4rk.androidtutorials-v${versionName}" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 53efa52..fffd8ce 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,11 +12,12 @@ + + + (R.id.editText) as EditText + binding.buttonPrintEdit.setOnClickListener { + Toast.makeText(this, edittext.text, Toast.LENGTH_LONG).show() + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/TextboxCodeActivity.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/TextboxCodeActivity.kt new file mode 100644 index 0000000..b62316c --- /dev/null +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/TextboxCodeActivity.kt @@ -0,0 +1,45 @@ +@file:Suppress("DEPRECATION") +package com.d4rk.androidtutorials.ui.android.textbox +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentPagerAdapter +import androidx.viewpager.widget.ViewPager +import com.d4rk.androidtutorials.R +import com.d4rk.androidtutorials.ui.android.textbox.tabs.TextboxTabCodeFragment +import com.d4rk.androidtutorials.ui.android.textbox.tabs.TextboxTabLayoutFragment +import com.google.android.material.tabs.TabLayout +class TextboxCodeActivity: AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_tab_layout) + val tabs : TabLayout = findViewById(R.id.tabs) + val viewpager : ViewPager = findViewById(R.id.viewpager) + setupViewPager(viewpager) + tabs.setupWithViewPager(viewpager) + } + private fun setupViewPager(viewPager: ViewPager) { + val adapter = ViewPagerAdapter(supportFragmentManager) + adapter.addFragment(TextboxTabCodeFragment(), getString(R.string.code_kotlin)) + adapter.addFragment(TextboxTabLayoutFragment(), getString(R.string.layout_xml)) + viewPager.adapter = adapter + } + internal inner class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) { + private val mFragmentList = ArrayList() + private val mFragmentTitleList = ArrayList() + override fun getItem(position: Int): Fragment { + return mFragmentList[position] + } + override fun getCount(): Int { + return mFragmentList.size + } + fun addFragment(fragment: Fragment, title: String) { + mFragmentList.add(fragment) + mFragmentTitleList.add(title) + } + override fun getPageTitle(position: Int): CharSequence { + return mFragmentTitleList[position] + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/tabs/TextboxTabCodeFragment.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/tabs/TextboxTabCodeFragment.kt new file mode 100644 index 0000000..02c114b --- /dev/null +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/tabs/TextboxTabCodeFragment.kt @@ -0,0 +1,33 @@ +package com.d4rk.androidtutorials.ui.android.textbox.tabs +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.d4rk.androidtutorials.R +import com.d4rk.androidtutorials.databinding.FragmentTextboxCodeBinding +import java.io.ByteArrayOutputStream +import java.io.IOException +import java.io.InputStream +class TextboxTabCodeFragment : Fragment() { + private lateinit var _binding: FragmentTextboxCodeBinding + private val binding get() = _binding + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + _binding = FragmentTextboxCodeBinding.inflate(inflater, container, false) + val inputStream: InputStream = resources.openRawResource(R.raw.text_textbox_kotlin) + val byteArrayOutputStream = ByteArrayOutputStream() + var i: Int + try { + i = inputStream.read() + while (i != - 1) { + byteArrayOutputStream.write(i) + i = inputStream.read() + } + inputStream.close() + } catch (e: IOException) { + e.printStackTrace() + } + binding.textboxCodeText.text = byteArrayOutputStream.toString() + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/tabs/TextboxTabLayoutFragment.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/tabs/TextboxTabLayoutFragment.kt new file mode 100644 index 0000000..70749b7 --- /dev/null +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/textbox/tabs/TextboxTabLayoutFragment.kt @@ -0,0 +1,33 @@ +package com.d4rk.androidtutorials.ui.android.textbox.tabs +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.d4rk.androidtutorials.R +import com.d4rk.androidtutorials.databinding.FragmentTextboxLayoutBinding +import java.io.ByteArrayOutputStream +import java.io.IOException +import java.io.InputStream +class TextboxTabLayoutFragment : Fragment() { + private lateinit var _binding: FragmentTextboxLayoutBinding + private val binding get() = _binding + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + _binding = FragmentTextboxLayoutBinding.inflate(inflater, container, false) + val inputStream: InputStream = resources.openRawResource(R.raw.text_textbox_xml) + val byteArrayOutputStream = ByteArrayOutputStream() + var i: Int + try { + i = inputStream.read() + while (i != - 1) { + byteArrayOutputStream.write(i) + i = inputStream.read() + } + inputStream.close() + } catch (e: IOException) { + e.printStackTrace() + } + binding.textboxXMLText.text = byteArrayOutputStream.toString() + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleActivity.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleActivity.kt index 3349b51..44816dd 100644 --- a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleActivity.kt +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleActivity.kt @@ -12,16 +12,16 @@ class ToggleActivity : MonetCompatActivity() { binding = ActivityToggleBinding.inflate(layoutInflater) setContentView(binding.root) binding.monetSwitch.setOnClickListener { - Toast.makeText(this@ToggleActivity, R.string.monetSwitchToast, Toast.LENGTH_SHORT).show() + Toast.makeText(this, R.string.monetSwitchToast, Toast.LENGTH_SHORT).show() } binding.appCompatToggleButton.setOnClickListener { - Toast.makeText(this@ToggleActivity, R.string.appCompatToggleButtonToast, Toast.LENGTH_SHORT).show() + Toast.makeText(this, R.string.appCompatToggleButtonToast, Toast.LENGTH_SHORT).show() } binding.switchMaterial.setOnClickListener { - Toast.makeText(this@ToggleActivity, R.string.switchMaterialToast, Toast.LENGTH_SHORT).show() + Toast.makeText(this, R.string.switchMaterialToast, Toast.LENGTH_SHORT).show() } binding.showToggleCodeSyntax.setOnClickListener { - val intent = Intent(this@ToggleActivity, ToggleCodeActivity::class.java) + val intent = Intent(this, ToggleCodeActivity::class.java) startActivity(intent) } } diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleCodeActivity.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleCodeActivity.kt index 7f7e283..74354ee 100644 --- a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleCodeActivity.kt +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/ToggleCodeActivity.kt @@ -1,6 +1,7 @@ @file:Suppress("DEPRECATION") package com.d4rk.androidtutorials.ui.android.toggle import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter @@ -9,8 +10,7 @@ import com.d4rk.androidtutorials.R import com.d4rk.androidtutorials.ui.android.toggle.tabs.ToggleTabCodeFragment import com.d4rk.androidtutorials.ui.android.toggle.tabs.ToggleTabLayoutFragment import com.google.android.material.tabs.TabLayout -import com.kieronquinn.monetcompat.app.MonetCompatActivity -class ToggleCodeActivity: MonetCompatActivity() { +class ToggleCodeActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_tab_layout) diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/tabs/ToggleTabLayoutFragment.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/tabs/ToggleTabLayoutFragment.kt index 675a03c..537c267 100644 --- a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/tabs/ToggleTabLayoutFragment.kt +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/android/toggle/tabs/ToggleTabLayoutFragment.kt @@ -9,7 +9,6 @@ import com.d4rk.androidtutorials.databinding.FragmentToggleLayoutBinding import java.io.ByteArrayOutputStream import java.io.IOException import java.io.InputStream - class ToggleTabLayoutFragment : Fragment() { private lateinit var _binding: FragmentToggleLayoutBinding private val binding get() = _binding diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/feedback/FeedbackActivity.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/feedback/FeedbackActivity.kt index 58ef3f1..692f54c 100644 --- a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/feedback/FeedbackActivity.kt +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/feedback/FeedbackActivity.kt @@ -1,12 +1,15 @@ package com.d4rk.androidtutorials.ui.feedback +import android.content.Intent import android.os.Bundle +import android.view.Menu +import android.view.MenuItem import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity import com.d4rk.androidtutorials.R import com.d4rk.androidtutorials.databinding.ActivityFeedbackBinding import com.google.android.play.core.review.ReviewManager import com.google.android.play.core.review.ReviewManagerFactory -import com.kieronquinn.monetcompat.app.MonetCompatActivity -class FeedbackActivity : MonetCompatActivity() { +class FeedbackActivity : AppCompatActivity() { private lateinit var reviewManager: ReviewManager private lateinit var binding: ActivityFeedbackBinding override fun onCreate(savedInstanceState: Bundle?) { @@ -15,6 +18,23 @@ class FeedbackActivity : MonetCompatActivity() { setContentView(binding.root) init() } + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.menu_feedback, menu) + return true + } + override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { + R.id.dev_mail -> { + val email = Intent(Intent.ACTION_SEND) + email.type = "text/email" + email.putExtra(Intent.EXTRA_EMAIL, arrayOf("d4rk7355608@gmail.com")) + email.putExtra(Intent.EXTRA_SUBJECT, "Feedback for Android Studio Tutorials") + email.putExtra(Intent.EXTRA_TEXT, "Dear developer, ") + startActivity(Intent.createChooser(email, "Send mail to Developer:")) + true + } else -> { + super.onOptionsItemSelected(item) + } + } private fun init() { reviewManager = ReviewManagerFactory.create(this) binding.btnRateNow.setOnClickListener { diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/permissions/PermissionsActivity.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/permissions/PermissionsActivity.kt index 0c4ff75..5f7d15d 100644 --- a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/permissions/PermissionsActivity.kt +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/permissions/PermissionsActivity.kt @@ -1,10 +1,10 @@ package com.d4rk.androidtutorials.ui.permissions import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity import androidx.preference.PreferenceFragmentCompat import com.d4rk.androidtutorials.R import com.d4rk.androidtutorials.databinding.PermissionsActivityBinding -import com.kieronquinn.monetcompat.app.MonetCompatActivity -class PermissionsActivity : MonetCompatActivity() { +class PermissionsActivity : AppCompatActivity() { private lateinit var binding: PermissionsActivityBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/settings/SettingsActivity.kt b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/settings/SettingsActivity.kt index 3b6b67c..95d5f4d 100644 --- a/app/src/main/kotlin/com/d4rk/androidtutorials/ui/settings/SettingsActivity.kt +++ b/app/src/main/kotlin/com/d4rk/androidtutorials/ui/settings/SettingsActivity.kt @@ -5,6 +5,7 @@ import android.net.Uri import android.os.Bundle import android.view.View import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat @@ -12,8 +13,7 @@ import androidx.preference.PreferenceManager import com.d4rk.androidtutorials.R import com.d4rk.androidtutorials.databinding.SettingsActivityBinding import com.google.android.material.textview.MaterialTextView -import com.kieronquinn.monetcompat.app.MonetCompatActivity -class SettingsActivity : MonetCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener { +class SettingsActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener { private lateinit var binding: SettingsActivityBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/play/listings/en-US/full-description.txt b/app/src/main/play/listings/en-US/full-description.txt index 9a7d7a6..729e16a 100644 --- a/app/src/main/play/listings/en-US/full-description.txt +++ b/app/src/main/play/listings/en-US/full-description.txt @@ -33,6 +33,7 @@ GitHub: https://github.com/D4rK7355608/com.d4rk.androidtutorials 🛠️ Features! ⭐️ Kotlin & XML examples. +⭐️ Binding examples. ⭐️ Easy to understand examples. ⭐️ No internet required. ⭐️ Adaptive themes + Material-You. diff --git a/app/src/main/res/drawable-anydpi/ic_launcher_foreground.xml b/app/src/main/res/drawable-anydpi/ic_launcher_foreground.xml index 15050f9..53d0f37 100644 --- a/app/src/main/res/drawable-anydpi/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable-anydpi/ic_launcher_foreground.xml @@ -4,4 +4,4 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/ic_text.xml b/app/src/main/res/drawable-anydpi/ic_text.xml new file mode 100644 index 0000000..7627550 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_text.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/ic_verified.xml b/app/src/main/res/drawable-anydpi/ic_verified.xml new file mode 100644 index 0000000..309b172 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_verified.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/menu_card.xml b/app/src/main/res/drawable-anydpi/menu_card.xml deleted file mode 100644 index c85d7be..0000000 --- a/app/src/main/res/drawable-anydpi/menu_card.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable-anydpi/overflow_background.xml b/app/src/main/res/drawable-anydpi/overflow_background.xml new file mode 100644 index 0000000..e4e7915 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/overflow_background.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/switch_thumb.xml b/app/src/main/res/drawable-anydpi/switch_thumb.xml new file mode 100644 index 0000000..04e5221 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/switch_thumb.xml @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/switch_track.xml b/app/src/main/res/drawable-anydpi/switch_track.xml new file mode 100644 index 0000000..3e10533 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/switch_track.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/audiowide.ttf b/app/src/main/res/font/audiowide.ttf deleted file mode 100644 index 348817d..0000000 Binary files a/app/src/main/res/font/audiowide.ttf and /dev/null differ diff --git a/app/src/main/res/layout/activity_android_sdk.xml b/app/src/main/res/layout/activity_android_sdk.xml index 3c243d6..cffcd20 100644 --- a/app/src/main/res/layout/activity_android_sdk.xml +++ b/app/src/main/res/layout/activity_android_sdk.xml @@ -12,7 +12,7 @@ app:layout_constraintBottom_toTopOf="@+id/tableRow" app:layout_constraintTop_toTopOf="@+id/tableRow" tools:context=".ui.android.sdk.AndroidSDK"> - - @@ -55,27 +54,27 @@ android:layout_height="wrap_content" android:divider="@color/colorAccent" android:showDividers="middle"> - - - - - - - - - - @@ -114,24 +113,24 @@ android:layout_height="wrap_content" android:divider="@color/colorAccent" android:showDividers="middle"> - - - - - @@ -307,7 +306,7 @@ android:gravity="center" tools:ignore="HardcodedText" android:textSize="11sp" - android:text="2.3.0 / 2.3.2"/> + android:text="2.3.0/2.3.2"/> + android:text="2.3.3/2.3.7"/> + android:text="4.0.1/4.0.2"/> + android:text="4.0.3/4.0.4"/> - - - - - - - - + + + android:padding="24dp"> + app:layout_constraintTop_toTopOf="parent"> - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_toggle.xml b/app/src/main/res/layout/activity_toggle.xml index cdcb340..5cef7dd 100644 --- a/app/src/main/res/layout/activity_toggle.xml +++ b/app/src/main/res/layout/activity_toggle.xml @@ -46,6 +46,15 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/appCompatToggleButton"/> + + android:layout_margin="16dp" + style="@style/Widget.Material3.CardView.Elevated"> @@ -91,10 +84,8 @@ android:text="@string/github" android:textColor="?android:textColorPrimary" android:tooltipText="@string/github" - app:chipBackgroundColor="@color/colorBackground" + style="@style/Widget.Material3.Chip.Assist.Elevated" app:chipIcon="@drawable/ic_github" - app:chipSpacing="0dp" - app:chipStrokeWidth="0dp" app:layout_constraintEnd_toStartOf="@id/item_settings_more_about_twitter" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" @@ -109,10 +100,8 @@ android:text="@string/twitter" android:textColor="?android:textColorPrimary" android:tooltipText="@string/twitter" - app:chipBackgroundColor="@color/colorBackground" app:chipIcon="@drawable/ic_twitter" - app:chipSpacing="0dp" - app:chipStrokeWidth="0dp" + style="@style/Widget.Material3.Chip.Assist.Elevated" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/item_settings_more_about_github" app:layout_constraintTop_toBottomOf="@id/item_settings_more_about_google_dev"/> @@ -125,10 +114,8 @@ android:text="@string/xda" android:textColor="?android:textColorPrimary" android:tooltipText="@string/xda" - app:chipBackgroundColor="@color/colorBackground" app:chipIcon="@drawable/ic_xda" - app:chipSpacing="0dp" - app:chipStrokeWidth="0dp" + style="@style/Widget.Material3.Chip.Assist.Elevated" app:layout_constraintEnd_toStartOf="@id/item_settings_more_about_libraries" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" @@ -143,10 +130,8 @@ android:text="@string/libraries" android:textColor="?android:textColorPrimary" android:tooltipText="@string/libraries" - app:chipBackgroundColor="@color/colorBackground" + style="@style/Widget.Material3.Chip.Assist.Elevated" app:chipIcon="@drawable/ic_libraries" - app:chipSpacing="0dp" - app:chipStrokeWidth="0dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/item_settings_more_about_xda" app:layout_constraintTop_toBottomOf="@id/item_settings_more_about_github"/> @@ -160,9 +145,8 @@ android:text="@string/settings" android:tooltipText="@string/settings" android:textColor="?android:textColorPrimary" - app:chipBackgroundColor="@color/colorBackground3" app:chipIcon="@drawable/ic_settings" - app:chipStrokeWidth="0dp"/> + style="@style/Widget.Material3.Chip.Assist.Elevated"/> + tools:context=".ui.android.buttons.tabs.ButtonsTabCodeFragment"> + app:layout_constraintTop_toTopOf="parent"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_buttons_layout.xml b/app/src/main/res/layout/fragment_buttons_layout.xml index 3b18bb3..40686ff 100644 --- a/app/src/main/res/layout/fragment_buttons_layout.xml +++ b/app/src/main/res/layout/fragment_buttons_layout.xml @@ -7,6 +7,7 @@ android:layout_height="match_parent" tools:context=".ui.android.toggle.tabs.ToggleTabLayoutFragment"> + app:layout_constraintTop_toTopOf="parent"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 83395e6..7321de3 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -38,12 +38,11 @@ android:layout_height="266dp" android:layout_marginStart="32dp" android:layout_marginEnd="32dp" - app:cardBackgroundColor="@color/colorBackground3" + style="@style/Widget.Material3.CardView.Elevated" app:cardCornerRadius="24dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:strokeWidth="0dp"> + app:layout_constraintStart_toStartOf="parent"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_textbox_layout.xml b/app/src/main/res/layout/fragment_textbox_layout.xml new file mode 100644 index 0000000..88245d5 --- /dev/null +++ b/app/src/main/res/layout/fragment_textbox_layout.xml @@ -0,0 +1,31 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_toggle_code.xml b/app/src/main/res/layout/fragment_toggle_code.xml index a6c79da..f21b77e 100644 --- a/app/src/main/res/layout/fragment_toggle_code.xml +++ b/app/src/main/res/layout/fragment_toggle_code.xml @@ -7,6 +7,7 @@ android:layout_height="match_parent" tools:context=".ui.android.toggle.tabs.ToggleTabCodeFragment"> + app:layout_constraintTop_toTopOf="parent"> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_toggle_layout.xml b/app/src/main/res/layout/fragment_toggle_layout.xml index 9a31014..46a84c1 100644 --- a/app/src/main/res/layout/fragment_toggle_layout.xml +++ b/app/src/main/res/layout/fragment_toggle_layout.xml @@ -7,6 +7,7 @@ android:layout_height="match_parent" tools:context=".ui.android.toggle.tabs.ToggleTabLayoutFragment"> + app:layout_constraintTop_toTopOf="parent"> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_feedback.xml b/app/src/main/res/menu/menu_feedback.xml new file mode 100644 index 0000000..4d659cc --- /dev/null +++ b/app/src/main/res/menu/menu_feedback.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml similarity index 79% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/main/res/mipmap-anydpi/ic_launcher.xml index a803d02..2ac8d5c 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi/ic_launcher.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_english_with_lidia.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_english_with_lidia.xml similarity index 76% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_english_with_lidia.xml rename to app/src/main/res/mipmap-anydpi/ic_launcher_english_with_lidia.xml index 0ceea98..ee95808 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_english_with_lidia.xml +++ b/app/src/main/res/mipmap-anydpi/ic_launcher_english_with_lidia.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_music_sleep_timer.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_music_sleep_timer.xml similarity index 76% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_music_sleep_timer.xml rename to app/src/main/res/mipmap-anydpi/ic_launcher_music_sleep_timer.xml index 055c5f1..e309045 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_music_sleep_timer.xml +++ b/app/src/main/res/mipmap-anydpi/ic_launcher_music_sleep_timer.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_qr_codes_scanner.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_qr_codes_scanner.xml similarity index 76% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_qr_codes_scanner.xml rename to app/src/main/res/mipmap-anydpi/ic_launcher_qr_codes_scanner.xml index 35427f5..2bcd7d7 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_qr_codes_scanner.xml +++ b/app/src/main/res/mipmap-anydpi/ic_launcher_qr_codes_scanner.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/raw/text_buttons_kotlin.txt b/app/src/main/res/raw/text_buttons_kotlin.txt new file mode 100644 index 0000000..96e2313 --- /dev/null +++ b/app/src/main/res/raw/text_buttons_kotlin.txt @@ -0,0 +1,20 @@ +package com.d4rk.androidtutorials.ui.android.buttons +import android.content.Intent +import android.os.Bundle +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +class MainActivity : AppCompatActivity() { + private lateinit var binding : ActivityMainBinding + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + binding.button1.setOnClickListener { + Toast.makeText(this, "Elevated button clicked!", Toast.LENGTH_SHORT).show() + } + binding.showButtonCodeSyntax.setOnClickListener { + val intent = Intent(this, ButtonsCodeActivity::class.java) + startActivity(intent) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/raw/text_buttons_xml.txt b/app/src/main/res/raw/text_buttons_xml.txt new file mode 100644 index 0000000..23e7561 --- /dev/null +++ b/app/src/main/res/raw/text_buttons_xml.txt @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/raw/text_textbox_kotlin.txt b/app/src/main/res/raw/text_textbox_kotlin.txt new file mode 100644 index 0000000..38e009c --- /dev/null +++ b/app/src/main/res/raw/text_textbox_kotlin.txt @@ -0,0 +1,24 @@ +package com.dev.example +import android.content.Intent +import android.os.Bundle +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import com.dev.example.R +import com.dev.example.databinding.ActivityMainBinding +class MainActivity : AppCompatActivity() { + private lateinit var binding : ActivityMainBinding + private var edittext: EditText? = null + private var button: Button? = null + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + addKeyListener() + } + private fun addKeyListener() { + edittext = findViewById(R.id.editText) as EditText + binding.button1.setOnClickListener { + Toast.makeText(this, edittext.text, Toast.LENGTH_LONG).show() + } + } +} \ No newline at end of file diff --git a/app/src/main/res/raw/text_textbox_xml.txt b/app/src/main/res/raw/text_textbox_xml.txt new file mode 100644 index 0000000..3df15b8 --- /dev/null +++ b/app/src/main/res/raw/text_textbox_xml.txt @@ -0,0 +1,20 @@ + + + + + +