Skip to content

Commit

Permalink
initialzed the project
Browse files Browse the repository at this point in the history
  • Loading branch information
akram09 committed Oct 25, 2019
1 parent 113a311 commit 386121a
Show file tree
Hide file tree
Showing 18 changed files with 825 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

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

75 changes: 66 additions & 9 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion 29
Expand All @@ -21,15 +21,72 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

defaultConfig {
vectorDrawables.useSupportLibrary = true
}

dataBinding {
enabled true
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.0.1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
//Dependencies
implementation deps.base.domain
implementation deps.android.constraint_layout
implementation deps.android.activity
implementation deps.android.lifecycle_extensions
implementation deps.android.ktx_fragment
implementation deps.android.fragment
implementation deps.android.curved_view
implementation deps.android.appcompat
implementation deps.android.recyclerview
implementation deps.android.design
implementation deps.android.picasso
implementation deps.android.shimmer
implementation deps.android.circle_imageview
implementation deps.android.image_copper
implementation deps.android.lottie
implementation deps.android.indicator
implementation deps.android.multidex
implementation deps.android.timbre
implementation deps.android.expand_layou
implementation deps.android.scalLayout
implementation deps.android.recycler_tablayout
implementation deps.android.spinner
implementation deps.android.backdrop
implementation deps.android.flex_layout
implementation deps.android.expandableToolabr
implementation deps.android.loadingBtn
implementation deps.android.customeFab
implementation deps.android.prefrences
implementation deps.android.tooltip
implementation deps.android.gesture
implementation deps.android.photoView
implementation deps.android.labelView
implementation deps.android.curve

implementation deps.epoxy.core
implementation deps.epoxy.databinding
implementation deps.epoxy.paging
kapt deps.epoxy.processor

implementation deps.firebase.fcm

implementation deps.kotlin.kotlin_jre
implementation deps.kotlin.coroutines_core
implementation deps.kotlin.coroutines_android

implementation deps.rxJava.core
implementation deps.rxJava.rxAndroid
implementation deps.rxJava.rxKotlin
implementation deps.rxJava.reactive_network
implementation deps.rxJava.rxpreferences
}
apply plugin: 'com.google.gms.google-services'
48 changes: 48 additions & 0 deletions app/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"project_info": {
"project_number": "760449034411",
"firebase_url": "https://social-blind.firebaseio.com",
"project_id": "social-blind",
"storage_bucket": "social-blind.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:760449034411:android:d8e38be247b30f7952efee",
"android_client_info": {
"package_name": "com.team7.socialblind"
}
},
"oauth_client": [
{
"client_id": "760449034411-k1qi7gvg9iei9btca3lcfbfqieo31agn.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.team7.socialblind",
"certificate_hash": "10ad5f06619d2bae65a29d6bb2bf9bcd6d042e25"
}
},
{
"client_id": "760449034411-l7j0ocnjreikfbfjahlftsdfuc05rpv6.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCUZgtm0JXKyaCUvdmXCXAG9u8515H7TdM"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "760449034411-l7j0ocnjreikfbfjahlftsdfuc05rpv6.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name=".ElbessApplication"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<activity android:name=".ui.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>

Expand Down
32 changes: 32 additions & 0 deletions app/src/main/java/com/team7/socialblind/ElbessApplication.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.team7.socialblind

import android.app.Application
import android.content.Context
import android.content.res.Configuration

import timber.log.Timber

import com.team7.socialblind.util.LocaleManager


class ElbessApplication : Application() {



override fun attachBaseContext(base: Context) {
super.attachBaseContext(LocaleManager.setLocale(base))
}

override fun onConfigurationChanged(newConfig: Configuration?) {
super.onConfigurationChanged(newConfig)
LocaleManager.setLocale(this)
}

override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
}

}
72 changes: 72 additions & 0 deletions app/src/main/java/com/team7/socialblind/base/BaseActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package com.team7.socialblind.base

import android.content.Context
import android.content.res.Configuration
import com.google.android.material.snackbar.Snackbar
import android.view.inputmethod.InputMethodManager
import android.widget.Toast
import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatActivity
import com.team7.socialblind.R
import com.team7.socialblind.util.LocaleManager


abstract class BaseActivity : AppCompatActivity() {

override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(LocaleManager.setLocale(newBase))
}

override fun applyOverrideConfiguration(overrideConfiguration: Configuration?) {
if (overrideConfiguration != null) {
val uiMode = overrideConfiguration.uiMode
overrideConfiguration.setTo(baseContext.resources.configuration)
overrideConfiguration.uiMode = uiMode
}
super.applyOverrideConfiguration(overrideConfiguration)
}

fun showSnackBar(message: String) {
val snackbar = Snackbar.make(
findViewById(android.R.id.content),
message, Snackbar.LENGTH_SHORT
)
snackbar.show()
}

fun hideKeyboard() {
val view = this.currentFocus
if (view != null) {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view.windowToken, 0)
}
}

fun showToast(message: String) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
}

fun onError(message: String?) {
if (message != null) {
showSnackBar(message)
} else {
showSnackBar(getString(R.string.uknown_error))
}
}

fun onError(@StringRes resId: Int) {
onError(getString(resId))
}

fun showMessage(message: String?) {
if (message != null) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, getString(R.string.uknown_error), Toast.LENGTH_SHORT).show()
}
}

fun showMessage(@StringRes resId: Int) {
showMessage(getString(resId))
}
}
42 changes: 42 additions & 0 deletions app/src/main/java/com/team7/socialblind/base/BaseDataSource.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.team7.elbess.base

import androidx.paging.PositionalDataSource
import timber.log.Timber

abstract class BaseDataSource<T> : PositionalDataSource<T>() {

protected lateinit var pageCallback: PageCallback<T>

override fun loadRange(params: LoadRangeParams, callback: LoadRangeCallback<T>) {
Timber.v("load range [${params.startPosition},${params.startPosition + params.loadSize}")
pageCallback = object : PageCallback<T> {
override fun onResult(items: List<T>) {
callback.onResult(items)
}
}
loadPage(LoadParam(params.startPosition, params.loadSize))
}

override fun loadInitial(params: LoadInitialParams, callback: LoadInitialCallback<T>) {
Timber.v("loadInitial size : ${params.pageSize}, reqested loaded size ${params.requestedLoadSize},start position ${params.requestedStartPosition}")
pageCallback = object : PageCallback<T> {
override fun onResult(items: List<T>) {
callback.onResult(items, items.size)
}
}
startInteractor()
loadPage(LoadParam(params.requestedStartPosition, params.pageSize))
}

abstract fun startInteractor()

abstract fun loadPage(loadParam: LoadParam)

abstract fun dispose()

data class LoadParam(val start: Int, val size: Int)

interface PageCallback<T> {
fun onResult(items: List<T>)
}
}
Loading

0 comments on commit 386121a

Please sign in to comment.