Skip to content

Commit

Permalink
feat: About Us
Browse files Browse the repository at this point in the history
  • Loading branch information
abhijitramesh committed Aug 26, 2019
1 parent 40a7865 commit 317d899
Show file tree
Hide file tree
Showing 13 changed files with 303 additions and 1 deletion.
4 changes: 4 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ apply from: '../config/quality/quality.gradle'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.android.gms.oss-licenses-plugin'

android {
compileSdkVersion 28
Expand Down Expand Up @@ -134,6 +135,9 @@ dependencies {
implementation "com.github.Raizlabs.DBFlow:dbflow-rx2:$rootProject.dbFlowVersion"
implementation "com.github.Raizlabs.DBFlow:dbflow-rx2-kotlinextensions:$rootProject.dbFlowVersion"

//OpenSource Licences
implementation "com.google.android.gms:play-services-oss-licenses:17.0.0"

// Instrumentation test dependencies
androidTestImplementation jUnit
androidTestImplementation mockito
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@
<activity android:name=".ui.mifos.customerProfile.CustomerProfileActivity"/>
<activity android:name=".ui.mifos.plannedPlayment.PlannedPaymentActivity"/>
<activity android:name=".ui.mifos.debtincomereport.DebtIncomeReportActivity"/>
<activity android:name=".ui.mifos.aboutus.AboutUsActivity"/>
<activity android:name=".ui.mifos.privacypolicy.PrivacyPolicyActivity"/>
<activity
android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" />
</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import dagger.Subcomponent
import org.mifos.mobile.cn.injection.PerActivity
import org.mifos.mobile.cn.injection.module.ActivityModule
import org.mifos.mobile.cn.ui.mifos.DashboardActivity
import org.mifos.mobile.cn.ui.mifos.aboutus.AboutUsFragment
import org.mifos.mobile.cn.ui.mifos.accounts.AccountsFragment
import org.mifos.mobile.cn.ui.mifos.accountsFilter.AccountsFilterBottomSheet
import org.mifos.mobile.cn.ui.mifos.customerAccounts.CustomerAccountFragment
Expand Down Expand Up @@ -75,4 +76,6 @@ interface ActivityComponent {
fun inject(debtIncomeReportFragment: DebtIncomeReportFragment)

fun inject(customerDepositDetailsFragment: CustomerDepositDetailsFragment)

fun inject(aboutUsFragment: AboutUsFragment)
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ import org.mifos.mobile.cn.ui.utils.MaterialDialog
import javax.inject.Inject
import kotlinx.android.synthetic.main.activity_main.*
import org.mifos.mobile.cn.enums.AccountType
import org.mifos.mobile.cn.ui.mifos.aboutus.AboutUsActivity
import org.mifos.mobile.cn.ui.mifos.customerAccounts.CustomerAccountFragment
import org.mifos.mobile.cn.ui.mifos.loanApplication.loanActivity.LoanApplicationActivity
import org.mifos.mobile.cn.ui.mifos.products.ProductFragment
import org.mifos.mobile.cn.ui.mifos.recentTransactions.RecentTransactionsFragment
import org.mifos.mobile.cn.ui.utils.CircularImageView
Expand Down Expand Up @@ -173,6 +175,9 @@ class DashboardActivity : MifosBaseActivity(), View.OnClickListener, NavigationV
R.id.item_recent_transactions -> {
replaceFragment(RecentTransactionsFragment.Companion.newInstance(),true,R.id.container)
}
R.id.item_about_us -> {
showAboutUs()
}
}

// close the drawer
Expand Down Expand Up @@ -205,5 +210,9 @@ class DashboardActivity : MifosBaseActivity(), View.OnClickListener, NavigationV
super.onBackPressed()
}
}
fun showAboutUs(){
val intent = Intent(this, AboutUsActivity::class.java)
startActivity(intent)
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.mifos.mobile.cn.ui.mifos.aboutus

import android.os.Bundle
import kotlinx.android.synthetic.main.globalcontainer.*
import org.mifos.mobile.cn.R
import org.mifos.mobile.cn.ui.base.MifosBaseActivity

class AboutUsActivity: MifosBaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_toolbar_container)
setToolbarTitle(getString(R.string.about_us))
showBackButton()
replaceFragment(AboutUsFragment.newInstance(),false,R.id.container)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package org.mifos.mobile.cn.ui.mifos.aboutus

import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import kotlinx.android.synthetic.main.fragment_about_us.*
import org.mifos.mobile.cn.BuildConfig
import org.mifos.mobile.cn.R
import org.mifos.mobile.cn.ui.base.MifosBaseActivity
import org.mifos.mobile.cn.ui.base.MifosBaseFragment
import org.mifos.mobile.cn.ui.mifos.privacypolicy.PrivacyPolicyActivity
import java.util.*

class AboutUsFragment : MifosBaseFragment(), View.OnClickListener {

lateinit var rootview: View

companion object {
fun newInstance(): Fragment {
val fragment: Fragment = AboutUsFragment()
val args = Bundle()
fragment.arguments = args
return fragment
}
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
rootview = inflater.inflate(R.layout.fragment_about_us, container, false)
(activity as MifosBaseActivity).activityComponent.inject(this)
setToolbarTitle(getString(R.string.about_us))
return rootview
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

tv_app_version.text = getString(R.string.app_version, BuildConfig.VERSION_NAME)
tv_copy_right.text = getString(R.string.copy_right_mifos, Calendar.getInstance().get(Calendar.YEAR).toString())
tv_licenses.setOnClickListener(this)
tv_privacy_policy.setOnClickListener(this)
}

override fun onClick(v: View?) {
if (v != null) {
when (v.id) {
R.id.tv_licenses -> showOpenSourceLisences()
R.id.tv_privacy_policy -> showPrivacyPolicy()
}
}
}

fun showOpenSourceLisences() {
startActivity(Intent(activity, OssLicensesMenuActivity::class.java))
}

fun showPrivacyPolicy() {
startActivity(Intent(activity, PrivacyPolicyActivity::class.java))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package org.mifos.mobile.cn.ui.mifos.privacypolicy

import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.webkit.WebView
import android.webkit.WebViewClient
import kotlinx.android.synthetic.main.activity_privacy_policy.*
import org.mifos.mobile.cn.R
import org.mifos.mobile.cn.ui.base.MifosBaseActivity

@SuppressLint("Registered")
class PrivacyPolicyActivity: MifosBaseActivity() {
private var showOrHideWebViewInitialUse = "show"

@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_privacy_policy)
setToolbarTitle(getString(R.string.privacy_policy))
showBackButton()

// Force links and redirects to open in the WebView instead of in a browser
webView.webViewClient = WebViewClient()

// Enable Javascript
val webSettings = webView.settings
webSettings.javaScriptEnabled = true

// REMOTE RESOURCE
webView.settings.domStorageEnabled = true
webView.overScrollMode = WebView.OVER_SCROLL_NEVER
webView.loadUrl(getString(R.string.privacy_policy_host_url))
webView.webViewClient = MyWebViewClient()
}

override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}

internal inner class MyWebViewClient : WebViewClient() {

override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (Uri.parse(url).host!!
.endsWith(getString(R.string.privacy_policy_host))) {
return false
}
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
return true
}

override fun onPageFinished(view: WebView, url: String) {
showOrHideWebViewInitialUse = "hide"
progress_bar.visibility = View.GONE
view.visibility = View.VISIBLE
super.onPageFinished(view, url)
}
}
}
Binary file added app/src/main/res/drawable/bg_about.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions app/src/main/res/layout/activity_privacy_policy.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>

<!--
~ This project is licensed under the open source MPL V2.
~ See https://github.com/openMF/self-service-app/blob/master/LICENSE.md
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:fitsSystemWindows="true"
android:layout_height="match_parent"
android:layout_width="match_parent">

<LinearLayout
style="@style/LinearLayout.Base">

<include layout="@layout/toolbar"/>

<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_height="match_parent"
android:layout_width="match_parent">

<WebView
android:id="@+id/webView"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:visibility="gone"/>

<ProgressBar
android:id="@+id/progress_bar"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

</LinearLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>
79 changes: 79 additions & 0 deletions app/src/main/res/layout/fragment_about_us.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<!--
~ This project is licensed under the open source MPL V2.
~ See https://github.com/openMF/self-service-app/blob/master/LICENSE.md
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/bg_about"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">

<LinearLayout
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">

<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/app_name"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/black"/>

<TextView
style="@style/Base.TextAppearance.AppCompat.Small"
android:id="@+id/tv_app_version"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/app_version"/>

<ImageView
android:layout_width="132dp"
android:layout_height="148dp"
android:layout_gravity="center"
android:layout_margin="@dimen/layout_padding_16dp"
android:src="@drawable/mifos_logo_new" />

<TextView
style="@style/Base.TextAppearance.AppCompat.Small"
android:id="@+id/tv_copy_right"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/copy_right_mifos"/>

<TextView
style="@style/Base.TextAppearance.AppCompat.Small"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/all_rights_reserved"/>

<TextView
android:id="@+id/tv_licenses"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/layout_padding_4dp"
android:layout_marginTop="@dimen/layout_padding_48dp"
android:layout_width="wrap_content"
android:text="@string/licenses"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/text_medium"/>

<TextView
android:id="@+id/tv_privacy_policy"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/privacy_policy"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/text_medium"/>

</LinearLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values/dimens.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,5 @@
<dimen name="header_view_start_margin_bottom">14dp</dimen>

<dimen name="view_line_height">1dp</dimen>
<dimen name="layout_padding_48dp">48dp</dimen>
</resources>
8 changes: 8 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,14 @@
<string name="no_beneficiary">No beneficiaries</string>
<string name="account">Account</string>
<string name="balance">Balance</string>
<string name="app_version">Version %1$s</string>
<string name="copy_right_mifos">©2016-%1$s Mifos Initiative.</string>
<string name="all_rights_reserved">All rights reserved.</string>
<string name="licenses">Licenses</string>
<string name="privacy_policy">Privacy Policy</string>
<string name="privacy_policy_host" translatable="false">openmf.github.io/privacy_policy_mifos_mobile.html</string>
<string name="privacy_policy_host_url" translatable="false">https://openmf.github.io/privacy_policy_mifos_mobile.html</string>
<string name="opensource_license_title">Open Source licenses</string>


</resources>
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

classpath 'com.google.android.gms:oss-licenses-plugin:0.9.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Expand Down

0 comments on commit 317d899

Please sign in to comment.