Skip to content

Commit

Permalink
Refactor- [:feature:home] Apply & Fix Detekt, Ktlint Rules
Browse files Browse the repository at this point in the history
  • Loading branch information
niyajali committed Aug 31, 2024
1 parent c704433 commit df8c362
Show file tree
Hide file tree
Showing 33 changed files with 602 additions and 344 deletions.
22 changes: 9 additions & 13 deletions feature/home/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
/*
* Copyright 2024 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifos.android.feature)
alias(libs.plugins.mifos.android.library.compose)
Expand All @@ -8,18 +17,5 @@ android {
}

dependencies {
implementation(projects.core.ui)
implementation(projects.core.common)
implementation(projects.core.model)
implementation(projects.core.data)

testImplementation(libs.junit)
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.espresso.core)
implementation(libs.squareup.okhttp)
api(libs.androidx.compose.ui.util)
implementation(libs.androidx.camera.camera2)
implementation(libs.androidx.camera.lifecycle)
implementation(libs.androidx.camera.view)
implementation(libs.androidx.camera.core)
}

This file was deleted.

9 changes: 9 additions & 0 deletions feature/home/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2024 Mifos Initiative
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
If a copy of the MPL was not distributed with this file,
You can obtain one at https://mozilla.org/MPL/2.0/.
See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

</manifest>
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
/*
* Copyright 2024 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
*/
package org.mifos.mobile.feature.home.components

import android.graphics.Bitmap
Expand All @@ -24,23 +33,25 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
import org.mifos.mobile.core.ui.component.MifosUserImage
import org.mifos.mobile.core.ui.utils.DevicePreviews
import org.mifos.mobile.feature.home.viewmodel.HomeNavigationItems

@Composable
fun HomeNavigationDrawer(
userBitmap: Bitmap?,
internal fun HomeNavigationDrawer(
username: String,
drawerState: DrawerState,
userBitmap: Bitmap?,
navigateItem: (HomeNavigationItems) -> Unit,
content: @Composable () -> Unit,
drawerState: DrawerState,
modifier: Modifier = Modifier,
) {
ModalNavigationDrawer(
drawerState = drawerState,
content = content,
modifier = modifier,
drawerContent = {
ModalDrawerSheet {
LazyColumn {
Expand All @@ -50,15 +61,15 @@ fun HomeNavigationDrawer(
.padding(20.dp)
.size(84.dp),
bitmap = userBitmap,
username = username
username = username,
)
Text(
text = username,
style = MaterialTheme.typography.headlineSmall,
color = MaterialTheme.colorScheme.onSurface,
modifier = Modifier
.padding(horizontal = 20.dp)
.fillMaxWidth(1f)
.fillMaxWidth(1f),
)

Spacer(modifier = Modifier.height(20.dp))
Expand All @@ -75,39 +86,39 @@ fun HomeNavigationDrawer(
Icon(
imageVector = ImageVector.vectorResource(id = item.iconResId),
contentDescription = null,
tint = MaterialTheme.colorScheme.primary
tint = MaterialTheme.colorScheme.primary,
)
Spacer(modifier = Modifier.width(8.dp))
Text(text = stringResource(id = item.nameResId))
}
},
selected = item == HomeNavigationItems.Home,
onClick = { navigateItem(item) }
onClick = { navigateItem(item) },
)
Spacer(modifier = Modifier.height(12.dp))
if(item == HomeNavigationItems.ManageBeneficiaries) {
if (item == HomeNavigationItems.ManageBeneficiaries) {
HorizontalDivider(
modifier = Modifier.padding(horizontal = 20.dp)
modifier = Modifier.padding(horizontal = 20.dp),
)
}
}
},
)
}
}
}
},
)
}

@Preview(showBackground = true)
@DevicePreviews
@Composable
fun HomeNavigationDrawerPreview() {
private fun HomeNavigationDrawerPreview() {
MifosMobileTheme {
HomeNavigationDrawer(
userBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888),
username = "Avneet",
content = {},
navigateItem = {},
drawerState = DrawerState(initialValue = DrawerValue.Open),
userBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888),
navigateItem = {},
content = {},
)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
/*
* Copyright 2024 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
*/
package org.mifos.mobile.feature.home.components

import androidx.compose.foundation.background
Expand All @@ -16,18 +25,19 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import org.mifos.mobile.core.designsystem.icons.MifosIcons
import org.mifos.mobile.core.ui.utils.DevicePreviews
import org.mifos.mobile.feature.home.R

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun HomeTopBar(
internal fun HomeTopBar(
notificationCount: Int,
openNavigationDrawer: () -> Unit,
openNotifications: () -> Unit,
notificationCount: Int,
modifier: Modifier = Modifier,
) {
TopAppBar(
title = {
Expand All @@ -37,29 +47,30 @@ fun HomeTopBar(
IconButton(
onClick = {
openNotifications()
}
},
) {
Box(
modifier = Modifier,
contentAlignment = Alignment.TopEnd
contentAlignment = Alignment.TopEnd,
) {
Icon(
imageVector = MifosIcons.Notifications,
contentDescription = null
contentDescription = null,
)

if(notificationCount > 0) {
if (notificationCount > 0) {
Box(
modifier = Modifier
.clip(CircleShape)
.background(Color.Red)
.padding(2.dp).size(8.dp),
contentAlignment = Alignment.Center
.padding(2.dp)
.size(8.dp),
contentAlignment = Alignment.Center,
) {
Text(
text = notificationCount.toString(),
color = Color.White,
fontSize = 6.sp
fontSize = 6.sp,
)
}
}
Expand All @@ -70,23 +81,24 @@ fun HomeTopBar(
IconButton(
onClick = {
openNavigationDrawer()
}
},
) {
Icon(
imageVector = MifosIcons.NavigationDrawer,
contentDescription = null
contentDescription = null,
)
}
}
},
modifier = modifier,
)
}

@Preview(showSystemUi = true)
@DevicePreviews
@Composable
fun HomeTopBarPreview() {
private fun HomeTopBarPreview() {
HomeTopBar(
openNavigationDrawer = {},
openNotifications = {},
notificationCount = 2
notificationCount = 2,
)
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
/*
* Copyright 2024 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
*/
package org.mifos.mobile.feature.home.components

import androidx.compose.foundation.clickable
Expand All @@ -6,26 +15,31 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.BasicAlertDialog
import androidx.compose.material3.Card
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
import org.mifos.mobile.core.ui.utils.DevicePreviews
import org.mifos.mobile.feature.home.R


@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun TransferDialog(
internal fun TransferDialog(
onDismissRequest: () -> Unit,
navigateToTransfer: () -> Unit,
navigateToThirdPartyTransfer: () -> Unit
navigateToThirdPartyTransfer: () -> Unit,
modifier: Modifier = Modifier,
) {
Dialog(onDismissRequest = onDismissRequest) {
BasicAlertDialog(
onDismissRequest = onDismissRequest,
modifier = modifier,
) {
Card {
Column(
modifier = Modifier
Expand All @@ -38,7 +52,7 @@ fun TransferDialog(
.fillMaxWidth()
.clickable {
navigateToTransfer()
}
},
)
Spacer(modifier = Modifier.height(20.dp))
HorizontalDivider()
Expand All @@ -49,22 +63,21 @@ fun TransferDialog(
.fillMaxWidth()
.clickable {
navigateToThirdPartyTransfer()
}
},
)
}
}
}
}


@Preview(showBackground = true)
@DevicePreviews
@Composable
fun TransferDialogPreview() {
private fun TransferDialogPreview() {
MifosMobileTheme {
TransferDialog(
onDismissRequest = {},
navigateToTransfer = {},
navigateToThirdPartyTransfer = {}
navigateToThirdPartyTransfer = {},
)
}
}
}
Loading

0 comments on commit df8c362

Please sign in to comment.