diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 08702c3d..b308e68c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,17 +23,6 @@ android:supportsRtl="true" android:theme="@style/AppTheme" tools:targetApi="n"> - - - - - @@ -94,6 +83,28 @@ + + + + + + + + + + + + - \ No newline at end of file diff --git a/app/src/main/java/org/apache/fineract/utils/CustomerWidget.kt b/app/src/main/java/org/apache/fineract/utils/CustomerWidget.kt new file mode 100644 index 00000000..55ec5eac --- /dev/null +++ b/app/src/main/java/org/apache/fineract/utils/CustomerWidget.kt @@ -0,0 +1,43 @@ +package org.apache.fineract.utils + +import android.app.PendingIntent +import android.appwidget.AppWidgetManager +import android.appwidget.AppWidgetProvider +import android.content.Context +import android.content.Intent +import android.widget.RemoteViews +import org.apache.fineract.R +import org.apache.fineract.ui.online.customers.createcustomer.CustomerAction +import org.apache.fineract.ui.online.customers.createcustomer.customeractivity.CreateCustomerActivity + +/** + * Implementation of App Widget functionality. + */ +class CustomerWidget : AppWidgetProvider() { + override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { + // There may be multiple widgets active, so update all of them + for (appWidgetId in appWidgetIds) { + updateAppWidget(context, appWidgetManager, appWidgetId) + } + } + + override fun onEnabled(context: Context) { + // Enter relevant functionality for when the first widget is created + } + + override fun onDisabled(context: Context) { + // Enter relevant functionality for when the last widget is disabled + } +} + +internal fun updateAppWidget(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int) { + val intent = Intent(context, CreateCustomerActivity::class.java) + intent.putExtra(ConstantKeys.CUSTOMER_ACTION, CustomerAction.CREATE) + val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0) + val views = RemoteViews(context.packageName, R.layout.customer_widget) + + views.setImageViewResource(R.id.appwidget_img, R.drawable.ic_widget_48dp) + views.setOnClickPendingIntent(R.id.appwidget_img, pendingIntent) + + appWidgetManager.updateAppWidget(appWidgetId, views) +} diff --git a/app/src/main/res/drawable-nodpi/widget_preview.png b/app/src/main/res/drawable-nodpi/widget_preview.png new file mode 100644 index 00000000..8e3e9844 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/widget_preview.png differ diff --git a/app/src/main/res/drawable/ic_add_black_24dp.xml b/app/src/main/res/drawable/ic_add_white_48dp.xml similarity index 61% rename from app/src/main/res/drawable/ic_add_black_24dp.xml rename to app/src/main/res/drawable/ic_add_white_48dp.xml index 76a9f8ab..76dde721 100644 --- a/app/src/main/res/drawable/ic_add_black_24dp.xml +++ b/app/src/main/res/drawable/ic_add_white_48dp.xml @@ -1,5 +1,5 @@ - + android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_widget_48dp.xml b/app/src/main/res/drawable/ic_widget_48dp.xml new file mode 100644 index 00000000..b5c6b7eb --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_48dp.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/customer_widget.xml b/app/src/main/res/layout/customer_widget.xml new file mode 100644 index 00000000..4a6c9ed1 --- /dev/null +++ b/app/src/main/res/layout/customer_widget.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_deposit.xml b/app/src/main/res/layout/fragment_customer_deposit.xml index a4f4a8ea..ea5a8e0f 100644 --- a/app/src/main/res/layout/fragment_customer_deposit.xml +++ b/app/src/main/res/layout/fragment_customer_deposit.xml @@ -25,6 +25,6 @@ android:layout_margin="@dimen/layout_padding_16dp" android:layout_width="wrap_content" app:layout_behavior="org.apache.fineract.utils.ScrollFabBehavior" - app:srcCompat="@drawable/ic_add_black_24dp"/> + app:srcCompat="@drawable/ic_add_white_48dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_list.xml b/app/src/main/res/layout/fragment_customer_list.xml index 626c1fc3..cc3fd823 100644 --- a/app/src/main/res/layout/fragment_customer_list.xml +++ b/app/src/main/res/layout/fragment_customer_list.xml @@ -90,6 +90,6 @@ android:layout_margin="@dimen/layout_padding_16dp" android:layout_width="wrap_content" app:layout_behavior="org.apache.fineract.utils.ScrollFabBehavior" - app:srcCompat="@drawable/ic_add_black_24dp"/> + app:srcCompat="@drawable/ic_add_white_48dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_customer_loans.xml b/app/src/main/res/layout/fragment_customer_loans.xml index 10d3dbe3..7ebe1ceb 100644 --- a/app/src/main/res/layout/fragment_customer_loans.xml +++ b/app/src/main/res/layout/fragment_customer_loans.xml @@ -34,6 +34,6 @@ android:layout_margin="@dimen/fab_margin" android:layout_width="wrap_content" app:layout_behavior="org.apache.fineract.utils.ScrollFabBehavior" - app:srcCompat="@drawable/ic_add_black_24dp"/> + app:srcCompat="@drawable/ic_add_white_48dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_edit_payroll_allocation.xml b/app/src/main/res/layout/fragment_edit_payroll_allocation.xml index 66b55fa0..dc888b9c 100644 --- a/app/src/main/res/layout/fragment_edit_payroll_allocation.xml +++ b/app/src/main/res/layout/fragment_edit_payroll_allocation.xml @@ -20,6 +20,6 @@ android:clickable="true" android:focusable="true" android:tint="@color/white" - app:srcCompat="@drawable/ic_add_black_24dp" /> + app:srcCompat="@drawable/ic_add_white_48dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_group_list.xml b/app/src/main/res/layout/fragment_group_list.xml index b4313606..9961f0cc 100644 --- a/app/src/main/res/layout/fragment_group_list.xml +++ b/app/src/main/res/layout/fragment_group_list.xml @@ -18,6 +18,6 @@ app:layout_anchor="@id/rvGroups" app:layout_anchorGravity="bottom|right" app:layout_behavior="org.apache.fineract.utils.ScrollFabBehavior" - app:srcCompat="@drawable/ic_add_black_24dp" /> + app:srcCompat="@drawable/ic_add_white_48dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_identification_list.xml b/app/src/main/res/layout/fragment_identification_list.xml index b6a7df02..24a70618 100644 --- a/app/src/main/res/layout/fragment_identification_list.xml +++ b/app/src/main/res/layout/fragment_identification_list.xml @@ -34,6 +34,6 @@ android:layout_margin="@dimen/layout_padding_16dp" android:layout_width="wrap_content" app:layout_behavior="org.apache.fineract.utils.ScrollFabBehavior" - app:srcCompat="@drawable/ic_add_black_24dp"/> + app:srcCompat="@drawable/ic_add_white_48dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_roles_list.xml b/app/src/main/res/layout/fragment_roles_list.xml index 395ab047..60ca4dd3 100644 --- a/app/src/main/res/layout/fragment_roles_list.xml +++ b/app/src/main/res/layout/fragment_roles_list.xml @@ -32,7 +32,7 @@ android:layout_margin="@dimen/layout_padding_16dp" android:layout_width="wrap_content" app:layout_behavior="org.apache.fineract.utils.ScrollFabBehavior" - app:srcCompat="@drawable/ic_add_black_24dp"/> + app:srcCompat="@drawable/ic_add_white_48dp"/> + app:srcCompat="@drawable/ic_add_white_48dp" /> diff --git a/app/src/main/res/layout/fragment_step_add_group_member.xml b/app/src/main/res/layout/fragment_step_add_group_member.xml index aac7ef54..bcc70e37 100644 --- a/app/src/main/res/layout/fragment_step_add_group_member.xml +++ b/app/src/main/res/layout/fragment_step_add_group_member.xml @@ -48,7 +48,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - app:srcCompat="@drawable/ic_add_black_24dp" /> + app:srcCompat="@drawable/ic_add_white_48dp" /> diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 00000000..feeda07f --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml new file mode 100644 index 00000000..97531a25 --- /dev/null +++ b/app/src/main/res/values/attrs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index e8a0cc4d..08d8ab8b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,66 +1,70 @@ + + @color/blue_light + @color/green_light + @color/red_light + @color/orange_light + #009688 #00796B #212121 #757575 - #FF4081 - #ffffff + #FF4081 - #ff33b5e5 + #ffffff - #33999999 + #ff33b5e5 - #BB666666 + #33999999 - #ff99cc00 + #BB666666 - #ffff4444 + #ff99cc00 - #ff0099cc + #ffff4444 - #ff669900 + #ff0099cc - #ffcc0000 + #ff669900 - #ffaa66cc + #ffcc0000 - #ffffbb33 + #ffaa66cc - #ffff8800 + #ffffbb33 - #ff00ddff + #ffff8800 + #ff00ddff + #33CCCCCC #0a46b1 - - #c9d8e9 + #c9d8e9 #000000 - #ffd1d1d1 + #ffd1d1d1 #ff14c416 #ff8bf98a #fff9ac06 #FF87DBF9 - #fff9393c + #fff9393c #bbbbbb #9e9e9e #E9E2E2 #049314 #787171 #eaeaea - #c1c1c1 - - @color/blue_light - @color/green_light - @color/red_light - @color/orange_light - + #c1c1c1 + #FFE1F5FE + #FF81D4FA + #FF039BE5 + #FF01579B diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 00000000..9d9a3edf --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/xml/customer_widget_info.xml b/app/src/main/res/xml/customer_widget_info.xml new file mode 100644 index 00000000..229d7e9f --- /dev/null +++ b/app/src/main/res/xml/customer_widget_info.xml @@ -0,0 +1,10 @@ + + \ No newline at end of file