Skip to content

Commit

Permalink
Merge pull request #34 from midhunhk/kiwiberry
Browse files Browse the repository at this point in the history
Kiwiberry
  • Loading branch information
midhunhk authored Mar 4, 2021
2 parents c84121f + 173e4ef commit ad57301
Show file tree
Hide file tree
Showing 214 changed files with 6,988 additions and 1,491 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
[![Build Status](https://travis-ci.org/midhunhk/lib-aeapps.svg)](https://travis-ci.org/midhunhk/lib-aeapps)
[![](https://jitci.com/gh/midhunhk/lib-aeapps/svg)](https://jitci.com/gh/midhunhk/lib-aeapps)
[![Release](https://jitpack.io/v/midhunhk/ae-apps-library.svg)](https://jitpack.io/#midhunhk/lib-aeapps)
[![GitHub commits](https://img.shields.io/github/commits-since/midhunhk/lib-aeapps/v3.0.2-rc.1.svg)](https://github.com/midhunhk/lib-aeapps)
[![GitHub commits](https://img.shields.io/github/commits-since/midhunhk/lib-aeapps/v4.0.7.svg)](https://github.com/midhunhk/lib-aeapps)
[![Issues](https://img.shields.io/github/issues/midhunhk/lib-aeapps.svg)](https://github.com/midhunhk/lib-aeapps/issues)

libAeApps is an Android library project which provides reusable solutions to some common problems.
Some solutions require boiler plate code which can become tedious to manage.

This is named after **Artistik Expressionz** since all my apps follow the package structure "com.ae.apps.[appname]".
[Codenames](https://github.com/midhunhk/lib-aeapps/wiki/Codenames) for development versions are based on fruits, mostly berries.
[Codenames](https://github.com/midhunhk/lib-aeapps/wiki/Codenames) for development versions are based on fruits, mostly berries.
The latest codename is *Kiwiberry*

## Contents
Detailed information about the architecture of the project is available on the project wiki at [this link](https://github.com/midhunhk/lib-aeapps/wiki/Architecture)
Expand Down
14 changes: 13 additions & 1 deletion VersionHistory.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
## Version 4.1 (Kiwiberry)
#### Version 4.1.0 [Feb 2021]
- runtime-permissions: AbstractPermissionsAwareActivity #32
- runtime-permissions: Code Cleanup #33
- billing-client: upgrade android billing library #29
- core: more color resources
- utilities: launchWebPage method
- contacts-api: Option to filter duplicate phone numbers
- contacts-api: Use an LRU Cache for Default Contact Pictures to improve performance
- contacts-api: Removed TIMES_CONTACTED and LAST_TIME_CONTACTED since they have been made obsolete by Google
- core: add an implementation for In-App Reviews

## Version 4.0 (Juneberry)
#### Version 4.0.7 [Apr 2020]
- More resources
- core: More resources

#### Version 4.0.6 [Apr 2020]
- Update proguard for all modules
Expand Down
13 changes: 8 additions & 5 deletions buildSrc/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ ext {
buildToolsVersion = "29.0.3"

espressoVersion = "3.1.0-beta02"
gradleBuildToolVersion = '3.6.2'
gradleBuildToolVersion = '4.1.2'
androidMavenPluginVersion = "2.1"
junitVersion = "4.12"
mockitoCoreVersion = "2.8.9"

junitVersion = "4.13.2"
mockitoCoreVersion = "2.19.0"
billingVersion = "3.0.0"
}

// Plugins
Expand All @@ -31,14 +31,17 @@ ext.deps = [
cardview : "androidx.cardview:cardview:1.0.0",
supportAnnotations : "androidx.annotation:annotation:1.0.0",
constraintLayout : 'androidx.constraintlayout:constraintlayout:2.0.1',
billingClient : 'com.android.billingclient:billing:1.1',
billingClient : "com.android.billingclient:billing:$billingVersion",
playCore : 'com.google.android.play:core:1.9.1',

// androidTestCompile
espressoCore : "androidx.test.espresso:espresso-core:$espressoVersion",
espressoIntents : "androidx.test.espresso:espresso-intents:$espressoVersion",
espressoContrib : "androidx.test.espresso:espresso-contrib:$espressoVersion",
testingSupportLib : "com.android.support.test:testing-support-lib:0.1",
runner : "androidx.test:runner:1.1.0-beta02",
espresso : 'androidx.test.espresso:espresso-core:3.3.0',
extJunit : 'androidx.test.ext:junit:1.1.2',

// testCompile
junit : "junit:junit:$junitVersion",
Expand Down
6 changes: 3 additions & 3 deletions buildSrc/publish.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ext.Publish = [
jitpack_group_id : 'com.github.midhunhk.lib-aeapps',
jitpack_artifact_id : 'lib-aeapps',

version : '4.0.7',
versionCode: 407,
versionName : '4.0.7'
version : '4.1.0',
versionCode: 410,
versionName : '4.1.0'
]
16 changes: 13 additions & 3 deletions docs/api/allclasses-frame.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_212-release) on Sun Apr 05 01:01:23 EDT 2020 -->
<!-- Generated by javadoc (1.8.0_242) on Tue Mar 02 19:33:40 EST 2021 -->
<title>All Classes</title>
<meta name="date" content="2020-04-05">
<meta name="date" content="2021-03-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
Expand All @@ -14,16 +14,22 @@ <h1 class="bar">All&nbsp;Classes</h1>
<ul>
<li><a href="com/ae/apps/lib/api/contacts/impl/AbstractContactsApiGateway.html" title="class in com.ae.apps.lib.api.contacts.impl" target="classFrame">AbstractContactsApiGateway</a></li>
<li><a href="com/ae/apps/lib/api/contacts/impl/AbstractContactsApiGateway.STATE.html" title="enum in com.ae.apps.lib.api.contacts.impl" target="classFrame">AbstractContactsApiGateway.STATE</a></li>
<li><a href="com/ae/apps/lib/permissions/AbstractPermissionsAwareActivity.html" title="class in com.ae.apps.lib.permissions" target="classFrame">AbstractPermissionsAwareActivity</a></li>
<li><a href="com/ae/apps/lib/api/sms/impl/AbstractSmsApiGateway.html" title="class in com.ae.apps.lib.api.sms.impl" target="classFrame">AbstractSmsApiGateway</a></li>
<li><a href="com/ae/apps/lib/billingclient/BaseBillingClientFragment.html" title="class in com.ae.apps.lib.billingclient" target="classFrame">BaseBillingClientFragment</a></li>
<li><a href="com/ae/apps/lib/billingclient/AeBillingClient.html" title="class in com.ae.apps.lib.billingclient" target="classFrame">AeBillingClient</a></li>
<li><a href="com/ae/apps/lib/billingclient/AeBillingClient.BillingClientHandler.html" title="interface in com.ae.apps.lib.billingclient" target="classFrame"><span class="interfaceName">AeBillingClient.BillingClientHandler</span></a></li>
<li><a href="com/ae/apps/lib/review/AppReview.html" title="interface in com.ae.apps.lib.review" target="classFrame"><span class="interfaceName">AppReview</span></a></li>
<li><a href="com/ae/apps/lib/review/AppReviewImpl.html" title="class in com.ae.apps.lib.review" target="classFrame">AppReviewImpl</a></li>
<li><a href="com/ae/apps/lib/custom/views/ColorThemes.html" title="interface in com.ae.apps.lib.custom.views" target="classFrame"><span class="interfaceName">ColorThemes</span></a></li>
<li><a href="com/ae/apps/lib/common/utils/CommonUtils.html" title="class in com.ae.apps.lib.common.utils" target="classFrame">CommonUtils</a></li>
<li><a href="com/ae/apps/lib/common/models/ContactInfo.html" title="class in com.ae.apps.lib.common.models" target="classFrame">ContactInfo</a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactInfoFilterOptions.html" title="class in com.ae.apps.lib.api.contacts.types" target="classFrame">ContactInfoFilterOptions</a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactInfoOptions.html" title="class in com.ae.apps.lib.api.contacts.types" target="classFrame">ContactInfoOptions</a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactInfoOptions.Builder.html" title="class in com.ae.apps.lib.api.contacts.types" target="classFrame">ContactInfoOptions.Builder</a></li>
<li><a href="com/ae/apps/lib/multicontact/ContactPickerFragment.html" title="class in com.ae.apps.lib.multicontact" target="classFrame">ContactPickerFragment</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/ContactsApiConstants.html" title="interface in com.ae.apps.lib.api.contacts.utils" target="classFrame"><span class="interfaceName">ContactsApiConstants</span></a></li>
<li><a href="com/ae/apps/lib/api/contacts/ContactsApiGateway.html" title="interface in com.ae.apps.lib.api.contacts" target="classFrame"><span class="interfaceName">ContactsApiGateway</span></a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactsApiGatewayFactory.html" title="interface in com.ae.apps.lib.api.contacts.types" target="classFrame"><span class="interfaceName">ContactsApiGatewayFactory</span></a></li>
<li><a href="com/ae/apps/lib/api/contacts/impl/ContactsApiGatewayImpl.html" title="class in com.ae.apps.lib.api.contacts.impl" target="classFrame">ContactsApiGatewayImpl</a></li>
<li><a href="com/ae/apps/lib/api/contacts/impl/ContactsApiGatewayImpl.Builder.html" title="class in com.ae.apps.lib.api.contacts.impl" target="classFrame">ContactsApiGatewayImpl.Builder</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/ContactsApiUtils.html" title="class in com.ae.apps.lib.api.contacts.utils" target="classFrame">ContactsApiUtils</a></li>
Expand All @@ -32,6 +38,7 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/ae/apps/lib/common/utils/ContactUtils.html" title="class in com.ae.apps.lib.common.utils" target="classFrame">ContactUtils</a></li>
<li><a href="com/ae/apps/lib/db/CopiedDataBaseHelper.html" title="class in com.ae.apps.lib.db" target="classFrame">CopiedDataBaseHelper</a></li>
<li><a href="com/ae/apps/lib/db/DataBaseHelper.html" title="class in com.ae.apps.lib.db" target="classFrame">DataBaseHelper</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/DefaultPictureCache.html" title="class in com.ae.apps.lib.api.contacts.utils" target="classFrame">DefaultPictureCache</a></li>
<li><a href="com/ae/apps/lib/common/utils/DialogUtils.html" title="class in com.ae.apps.lib.common.utils" target="classFrame">DialogUtils</a></li>
<li><a href="com/ae/apps/lib/common/utils/intents/EmailIntentBuilder.html" title="class in com.ae.apps.lib.common.utils.intents" target="classFrame">EmailIntentBuilder</a></li>
<li><a href="com/ae/apps/lib/custom/views/EmptyRecyclerView.html" title="class in com.ae.apps.lib.custom.views" target="classFrame">EmptyRecyclerView</a></li>
Expand All @@ -53,12 +60,15 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/ae/apps/lib/permissions/PermissionCheckingActivity.html" title="class in com.ae.apps.lib.permissions" target="classFrame">PermissionCheckingActivity</a></li>
<li><a href="com/ae/apps/lib/permissions/PermissionCheckingFragment.html" title="class in com.ae.apps.lib.permissions" target="classFrame">PermissionCheckingFragment</a></li>
<li><a href="com/ae/apps/lib/permissions/PermissionsAwareComponent.html" title="interface in com.ae.apps.lib.permissions" target="classFrame"><span class="interfaceName">PermissionsAwareComponent</span></a></li>
<li><a href="com/ae/apps/lib/permissions/PermissionsRequestableComponent.html" title="interface in com.ae.apps.lib.permissions" target="classFrame"><span class="interfaceName">PermissionsRequestableComponent</span></a></li>
<li><a href="com/ae/apps/lib/common/models/PhoneNumberInfo.html" title="class in com.ae.apps.lib.common.models" target="classFrame">PhoneNumberInfo</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/PictureCache.html" title="interface in com.ae.apps.lib.api.contacts.utils" target="classFrame"><span class="interfaceName">PictureCache</span></a></li>
<li><a href="com/ae/apps/lib/custom/views/RoundedImageView.html" title="class in com.ae.apps.lib.custom.views" target="classFrame">RoundedImageView</a></li>
<li><a href="com/ae/apps/lib/permissions/RuntimePermissionChecker.html" title="class in com.ae.apps.lib.permissions" target="classFrame">RuntimePermissionChecker</a></li>
<li><a href="com/ae/apps/lib/custom/views/SimpleGraphView.html" title="class in com.ae.apps.lib.custom.views" target="classFrame">SimpleGraphView</a></li>
<li><a href="com/ae/apps/lib/api/sms/utils/SmsApiConstants.html" title="interface in com.ae.apps.lib.api.sms.utils" target="classFrame"><span class="interfaceName">SmsApiConstants</span></a></li>
<li><a href="com/ae/apps/lib/api/sms/SmsApiGateway.html" title="interface in com.ae.apps.lib.api.sms" target="classFrame"><span class="interfaceName">SmsApiGateway</span></a></li>
<li><a href="com/ae/apps/lib/api/sms/types/SmsApiGatewayFactory.html" title="interface in com.ae.apps.lib.api.sms.types" target="classFrame"><span class="interfaceName">SmsApiGatewayFactory</span></a></li>
<li><a href="com/ae/apps/lib/api/sms/impl/SmsApiGatewayImpl.html" title="class in com.ae.apps.lib.api.sms.impl" target="classFrame">SmsApiGatewayImpl</a></li>
<li><a href="com/ae/apps/lib/api/sms/utils/SmsApiUtils.html" title="class in com.ae.apps.lib.api.sms.utils" target="classFrame">SmsApiUtils</a></li>
<li><a href="com/ae/apps/lib/sample/features/sms/SmsSampleActivity.html" title="class in com.ae.apps.lib.sample.features.sms" target="classFrame">SmsSampleActivity</a></li>
Expand Down
16 changes: 13 additions & 3 deletions docs/api/allclasses-noframe.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_212-release) on Sun Apr 05 01:01:23 EDT 2020 -->
<!-- Generated by javadoc (1.8.0_242) on Tue Mar 02 19:33:40 EST 2021 -->
<title>All Classes</title>
<meta name="date" content="2020-04-05">
<meta name="date" content="2021-03-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
Expand All @@ -14,16 +14,22 @@ <h1 class="bar">All&nbsp;Classes</h1>
<ul>
<li><a href="com/ae/apps/lib/api/contacts/impl/AbstractContactsApiGateway.html" title="class in com.ae.apps.lib.api.contacts.impl">AbstractContactsApiGateway</a></li>
<li><a href="com/ae/apps/lib/api/contacts/impl/AbstractContactsApiGateway.STATE.html" title="enum in com.ae.apps.lib.api.contacts.impl">AbstractContactsApiGateway.STATE</a></li>
<li><a href="com/ae/apps/lib/permissions/AbstractPermissionsAwareActivity.html" title="class in com.ae.apps.lib.permissions">AbstractPermissionsAwareActivity</a></li>
<li><a href="com/ae/apps/lib/api/sms/impl/AbstractSmsApiGateway.html" title="class in com.ae.apps.lib.api.sms.impl">AbstractSmsApiGateway</a></li>
<li><a href="com/ae/apps/lib/billingclient/BaseBillingClientFragment.html" title="class in com.ae.apps.lib.billingclient">BaseBillingClientFragment</a></li>
<li><a href="com/ae/apps/lib/billingclient/AeBillingClient.html" title="class in com.ae.apps.lib.billingclient">AeBillingClient</a></li>
<li><a href="com/ae/apps/lib/billingclient/AeBillingClient.BillingClientHandler.html" title="interface in com.ae.apps.lib.billingclient"><span class="interfaceName">AeBillingClient.BillingClientHandler</span></a></li>
<li><a href="com/ae/apps/lib/review/AppReview.html" title="interface in com.ae.apps.lib.review"><span class="interfaceName">AppReview</span></a></li>
<li><a href="com/ae/apps/lib/review/AppReviewImpl.html" title="class in com.ae.apps.lib.review">AppReviewImpl</a></li>
<li><a href="com/ae/apps/lib/custom/views/ColorThemes.html" title="interface in com.ae.apps.lib.custom.views"><span class="interfaceName">ColorThemes</span></a></li>
<li><a href="com/ae/apps/lib/common/utils/CommonUtils.html" title="class in com.ae.apps.lib.common.utils">CommonUtils</a></li>
<li><a href="com/ae/apps/lib/common/models/ContactInfo.html" title="class in com.ae.apps.lib.common.models">ContactInfo</a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactInfoFilterOptions.html" title="class in com.ae.apps.lib.api.contacts.types">ContactInfoFilterOptions</a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactInfoOptions.html" title="class in com.ae.apps.lib.api.contacts.types">ContactInfoOptions</a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactInfoOptions.Builder.html" title="class in com.ae.apps.lib.api.contacts.types">ContactInfoOptions.Builder</a></li>
<li><a href="com/ae/apps/lib/multicontact/ContactPickerFragment.html" title="class in com.ae.apps.lib.multicontact">ContactPickerFragment</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/ContactsApiConstants.html" title="interface in com.ae.apps.lib.api.contacts.utils"><span class="interfaceName">ContactsApiConstants</span></a></li>
<li><a href="com/ae/apps/lib/api/contacts/ContactsApiGateway.html" title="interface in com.ae.apps.lib.api.contacts"><span class="interfaceName">ContactsApiGateway</span></a></li>
<li><a href="com/ae/apps/lib/api/contacts/types/ContactsApiGatewayFactory.html" title="interface in com.ae.apps.lib.api.contacts.types"><span class="interfaceName">ContactsApiGatewayFactory</span></a></li>
<li><a href="com/ae/apps/lib/api/contacts/impl/ContactsApiGatewayImpl.html" title="class in com.ae.apps.lib.api.contacts.impl">ContactsApiGatewayImpl</a></li>
<li><a href="com/ae/apps/lib/api/contacts/impl/ContactsApiGatewayImpl.Builder.html" title="class in com.ae.apps.lib.api.contacts.impl">ContactsApiGatewayImpl.Builder</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/ContactsApiUtils.html" title="class in com.ae.apps.lib.api.contacts.utils">ContactsApiUtils</a></li>
Expand All @@ -32,6 +38,7 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/ae/apps/lib/common/utils/ContactUtils.html" title="class in com.ae.apps.lib.common.utils">ContactUtils</a></li>
<li><a href="com/ae/apps/lib/db/CopiedDataBaseHelper.html" title="class in com.ae.apps.lib.db">CopiedDataBaseHelper</a></li>
<li><a href="com/ae/apps/lib/db/DataBaseHelper.html" title="class in com.ae.apps.lib.db">DataBaseHelper</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/DefaultPictureCache.html" title="class in com.ae.apps.lib.api.contacts.utils">DefaultPictureCache</a></li>
<li><a href="com/ae/apps/lib/common/utils/DialogUtils.html" title="class in com.ae.apps.lib.common.utils">DialogUtils</a></li>
<li><a href="com/ae/apps/lib/common/utils/intents/EmailIntentBuilder.html" title="class in com.ae.apps.lib.common.utils.intents">EmailIntentBuilder</a></li>
<li><a href="com/ae/apps/lib/custom/views/EmptyRecyclerView.html" title="class in com.ae.apps.lib.custom.views">EmptyRecyclerView</a></li>
Expand All @@ -53,12 +60,15 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/ae/apps/lib/permissions/PermissionCheckingActivity.html" title="class in com.ae.apps.lib.permissions">PermissionCheckingActivity</a></li>
<li><a href="com/ae/apps/lib/permissions/PermissionCheckingFragment.html" title="class in com.ae.apps.lib.permissions">PermissionCheckingFragment</a></li>
<li><a href="com/ae/apps/lib/permissions/PermissionsAwareComponent.html" title="interface in com.ae.apps.lib.permissions"><span class="interfaceName">PermissionsAwareComponent</span></a></li>
<li><a href="com/ae/apps/lib/permissions/PermissionsRequestableComponent.html" title="interface in com.ae.apps.lib.permissions"><span class="interfaceName">PermissionsRequestableComponent</span></a></li>
<li><a href="com/ae/apps/lib/common/models/PhoneNumberInfo.html" title="class in com.ae.apps.lib.common.models">PhoneNumberInfo</a></li>
<li><a href="com/ae/apps/lib/api/contacts/utils/PictureCache.html" title="interface in com.ae.apps.lib.api.contacts.utils"><span class="interfaceName">PictureCache</span></a></li>
<li><a href="com/ae/apps/lib/custom/views/RoundedImageView.html" title="class in com.ae.apps.lib.custom.views">RoundedImageView</a></li>
<li><a href="com/ae/apps/lib/permissions/RuntimePermissionChecker.html" title="class in com.ae.apps.lib.permissions">RuntimePermissionChecker</a></li>
<li><a href="com/ae/apps/lib/custom/views/SimpleGraphView.html" title="class in com.ae.apps.lib.custom.views">SimpleGraphView</a></li>
<li><a href="com/ae/apps/lib/api/sms/utils/SmsApiConstants.html" title="interface in com.ae.apps.lib.api.sms.utils"><span class="interfaceName">SmsApiConstants</span></a></li>
<li><a href="com/ae/apps/lib/api/sms/SmsApiGateway.html" title="interface in com.ae.apps.lib.api.sms"><span class="interfaceName">SmsApiGateway</span></a></li>
<li><a href="com/ae/apps/lib/api/sms/types/SmsApiGatewayFactory.html" title="interface in com.ae.apps.lib.api.sms.types"><span class="interfaceName">SmsApiGatewayFactory</span></a></li>
<li><a href="com/ae/apps/lib/api/sms/impl/SmsApiGatewayImpl.html" title="class in com.ae.apps.lib.api.sms.impl">SmsApiGatewayImpl</a></li>
<li><a href="com/ae/apps/lib/api/sms/utils/SmsApiUtils.html" title="class in com.ae.apps.lib.api.sms.utils">SmsApiUtils</a></li>
<li><a href="com/ae/apps/lib/sample/features/sms/SmsSampleActivity.html" title="class in com.ae.apps.lib.sample.features.sms">SmsSampleActivity</a></li>
Expand Down
Loading

0 comments on commit ad57301

Please sign in to comment.