Skip to content

Commit

Permalink
Add inital implementation for alpha13
Browse files Browse the repository at this point in the history
  • Loading branch information
PranavMaganti committed Feb 13, 2021
1 parent f6f8749 commit 078be1e
Show file tree
Hide file tree
Showing 140 changed files with 1,778 additions and 1,462 deletions.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,3 @@
.externalNativeBuild
.cxx
local.properties
.idea/
buildSrc/build
buildSrc/.gradle
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 50 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 1 addition & 7 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,8 @@ android {
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
useIR = true
}

composeOptions {
kotlinCompilerExtensionVersion = Dependencies.AndroidX.Compose.version
kotlinCompilerVersion = Dependencies.Kotlin.version
}

}
Expand All @@ -54,12 +48,12 @@ dependencies {
implementation(Dependencies.AndroidX.Compose.ui)
implementation(Dependencies.AndroidX.Compose.material)
implementation(Dependencies.AndroidX.Compose.materialIconsExtended)
implementation(Dependencies.AndroidX.composeActivity)

implementation(Dependencies.AndroidX.coreKtx)
implementation(Dependencies.AndroidX.appcompat)

implementation(Dependencies.material)

implementation(Dependencies.Accompanist.coil)
implementation(kotlin("stdlib-jdk8"))
}
2 changes: 1 addition & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.kts.
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.vanpra.composematerialdialogdemos

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.vanpra.composematerialdialogdemos", appContext.packageName)
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.vanpra.composematerialdialogdemos

import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.ScrollableColumn
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.setContent
import com.vanpra.composematerialdialogdemos.demos.BasicDialogDemo
import com.vanpra.composematerialdialogdemos.demos.BasicListDialogDemo
import com.vanpra.composematerialdialogdemos.demos.ColorDialogDemo
Expand All @@ -28,36 +28,25 @@ class MainActivity : AppCompatActivity() {
}
}

data class DialogSectionData(val title: String, val content: @Composable () -> Unit)

/**
* @brief Collection of Material Dialog Demos
*/
@Composable
fun DialogDemos() {
ScrollableColumn {
Column {
DialogSection(title = "Basic Dialogs") {
BasicDialogDemo()
}

DialogSection(title = "Basic List Dialogs") {
BasicListDialogDemo()
}

DialogSection(title = "Single Selection List Dialogs") {
SingleSelectionDemo()
}

DialogSection("Multi-Selection List Dialogs") {
MultiSelectionDemo()
}

DialogSection("Date and Time Picker Dialogs") {
DateTimeDialogDemo()
}

DialogSection("Color Picker Dialogs") {
ColorDialogDemo()
}
val sections = listOf(
DialogSectionData("Basic Dialogs") { BasicDialogDemo() },
DialogSectionData( "Basic List Dialogs") { BasicListDialogDemo() },
DialogSectionData("Single Selection List Dialogs") { SingleSelectionDemo() },
DialogSectionData("Multi-Selection List Dialogs") { MultiSelectionDemo() },
DialogSectionData("Date and Time Picker Dialogs") { DateTimeDialogDemo() },
DialogSectionData("Color Picker Dialogs") { ColorDialogDemo() }
)

LazyColumn {
items(sections) {
DialogSection(title = it.title) { it.content() }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.vanpra.composematerialdialogdemos.demos

import android.util.Log
import android.util.Patterns
import androidx.compose.foundation.Image
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.LocationOn
import androidx.compose.runtime.Composable
Expand Down Expand Up @@ -29,7 +30,7 @@ fun BasicDialogDemo() {

DialogAndShowButton(buttonText = "Basic Dialog With Buttons and Icon Title") {
iconTitle(
iconAsset = Icons.Default.LocationOn,
icon = { Image(Icons.Default.LocationOn, contentDescription = "Location Icon") },
textRes = R.string.location_dialog_title
)
message(res = R.string.location_dialog_message)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
package com.vanpra.composematerialdialogdemos.demos

import androidx.compose.runtime.Composable
import com.vanpra.composematerialdialogdemos.DialogAndShowButton
import com.vanpra.composematerialdialogs.datetime.datepicker
import com.vanpra.composematerialdialogs.datetime.datetimepicker
import com.vanpra.composematerialdialogs.datetime.timepicker
//import com.vanpra.composematerialdialogdemos.DialogAndShowButton
//import com.vanpra.composematerialdialogs.datetime.datepicker
//import com.vanpra.composematerialdialogs.datetime.datetimepicker
//import com.vanpra.composematerialdialogs.datetime.timepicker

/**
* @brief Date and Time Picker Demos
*/
@Composable
fun DateTimeDialogDemo() {
DialogAndShowButton(buttonText = "Time Picker Dialog") {
title("Select a time", center = true)
timepicker()
}

DialogAndShowButton(buttonText = "Date Picker Dialog") {
title("Select a date", center = true)
datepicker()
}

DialogAndShowButton(buttonText = "Date and Time Picker Dialog") {
// Date time picker has a custom title as it needs to show a back icon
datetimepicker("Select a date and time")
}
// DialogAndShowButton(buttonText = "Time Picker Dialog") {
// title("Select a time", center = true)
// timepicker()
// }
//
// DialogAndShowButton(buttonText = "Date Picker Dialog") {
// title("Select a date", center = true)
// datepicker()
// }
//
// DialogAndShowButton(buttonText = "Date and Time Picker Dialog") {
// // Date time picker has a custom title as it needs to show a back icon
// datetimepicker("Select a date and time")
// }
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.vanpra.composematerialdialogdemos.demos

import android.util.Log
import androidx.annotation.DrawableRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.AccountCircle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
Expand All @@ -23,7 +24,6 @@ import com.vanpra.composematerialdialogs.MaterialDialog
import com.vanpra.composematerialdialogs.listItems
import com.vanpra.composematerialdialogs.listItemsMultiChoice
import com.vanpra.composematerialdialogs.listItemsSingleChoice
import dev.chrisbanes.accompanist.coil.CoilImage

private val ringtones =
listOf(
Expand All @@ -45,18 +45,12 @@ private val ringtones =
"Zen Too"
)
private val labels = listOf("None", "Forums", "Social", "Updates", "Promotions", "Spam", "Bin")

private data class EmailIcon(
val email: String,
@DrawableRes val icon: Int
)

private val emailItems = listOf(
EmailIcon("[email protected]", R.drawable.tick),
EmailIcon("[email protected]", R.drawable.tick),
EmailIcon("[email protected]", R.drawable.tick),
EmailIcon("[email protected]", R.drawable.tick),
EmailIcon("[email protected]", R.drawable.tick)
private val emails = listOf(
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]"
)

@Composable
Expand All @@ -73,32 +67,32 @@ private fun MaterialDialog.defaultListButtons() {
@Composable
fun BasicListDialogDemo() {
DialogAndShowButton(buttonText = "Simple List Dialog") {
val emails = emailItems.map { it.email }
title(res = R.string.backup_dialog_title)
listItems(emails)
}

DialogAndShowButton(buttonText = "Custom List Dialog") {
title(res = R.string.backup_dialog_title)
listItems(emailItems) { _, emailIcon ->
listItems(emails, item = { _, email ->
Row(Modifier.fillMaxWidth()) {
CoilImage(
emailIcon.icon,
Image(
Icons.Default.AccountCircle,
contentDescription = "Account icon",
modifier = Modifier
.padding(vertical = 8.dp)
.size(30.dp),
contentScale = ContentScale.FillHeight
)
Text(
emailIcon.email,
email,
modifier = Modifier
.padding(start = 16.dp)
.align(Alignment.CenterVertically),
color = MaterialTheme.colors.onBackground,
style = MaterialTheme.typography.body1
)
}
}
})
}
}

Expand Down
Loading

0 comments on commit 078be1e

Please sign in to comment.