Skip to content

Commit

Permalink
added apk splitting, auth service, cookie api tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Tarapaty committed Aug 28, 2018
1 parent 9a225cc commit efa6f04
Show file tree
Hide file tree
Showing 9 changed files with 163 additions and 59 deletions.
10 changes: 8 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ android {
buildToolsVersion rootProject.buildToolsVersion

defaultConfig {
applicationId "com.example.android.potatoinc.instantappsample.app"
applicationId "com.potatoinc.instantappsample.app"
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
Expand All @@ -21,7 +21,13 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
debug {}
debug {
minifyEnabled false
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

Expand Down
11 changes: 11 additions & 0 deletions base/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
}
}

splits {
generatePureSplits true
density {enable true }
}
}

Expand Down Expand Up @@ -52,4 +61,6 @@ dependencies {
api "android.arch.lifecycle:extensions:1.1.1"

api 'com.google.android.gms:play-services-instantapps:16.0.0'
api 'com.google.android.gms:play-services-auth:15.0.1'

}
4 changes: 4 additions & 0 deletions character-details/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ android {
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@ package com.example.android.instantappsample.character_details

import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.os.Build
import android.os.Bundle
import android.os.PersistableBundle
import android.support.v7.app.AppCompatActivity
import com.bumptech.glide.Glide
import com.google.android.gms.instantapps.InstantApps
import kotlinx.android.synthetic.main.activity_character_details.*
import timber.log.Timber
import java.nio.charset.Charset

class CharacterDetailsActivity : AppCompatActivity() {

Expand All @@ -27,7 +30,7 @@ class CharacterDetailsActivity : AppCompatActivity() {
viewModel.fetchCharacterDetails(intent)
viewModel.characterDetailsData.observe(this, Observer { data ->
data?.let {
Glide.with(this@CharacterDetailsActivity)
Glide.with(this)
.load(it.image)
.into(characterImageIv)

Expand All @@ -37,6 +40,13 @@ class CharacterDetailsActivity : AppCompatActivity() {
}
})

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Timber.e("${packageManager.instantAppCookieMaxBytes}")
packageManager.updateInstantAppCookie(intent?.data.toString().toByteArray(Charset.defaultCharset()))
} else {
Timber.e("${InstantApps.getPackageManagerCompat(this).instantAppCookieMaxSize}")
}

}

}
4 changes: 4 additions & 0 deletions character-list/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
}
}
androidExtensions {
experimental = true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.android.instantappsample.character_list

import android.support.v4.content.ContextCompat
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
Expand Down Expand Up @@ -40,11 +41,19 @@ class CharacterItemAdapter(
itemCharacterContainerCrl.setOnClickListener {
onCharacterClicked(character)
}
itemCharacterContainerCrl.setBackgroundColor(
if (adapterPosition % 2 == 0) {
ContextCompat.getColor(itemView.context, android.R.color.holo_blue_light)
} else {
ContextCompat.getColor(itemView.context, android.R.color.background_light)
}
)
Glide.with(itemView.context)
.load(character.image)
.into(itemCharacterIv)

itemCharacterNameTv.text = character.name

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,25 @@ package com.example.android.instantappsample.character_list
import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.content.Intent
import android.content.IntentSender
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import com.google.android.gms.auth.api.credentials.*
import com.google.android.gms.common.api.ApiException
import com.google.android.gms.common.api.ResolvableApiException
import kotlinx.android.synthetic.main.activity_character_list.*
import timber.log.Timber
import java.nio.charset.Charset


public class CharacterListActivity : AppCompatActivity() {

private val viewModel: CharacterListViewModel by lazy { ViewModelProviders.of(this@CharacterListActivity)[CharacterListViewModel::class.java] }
private lateinit var characterListAdapter: CharacterItemAdapter
private val credentialsClient: CredentialsClient by lazy { Credentials.getClient(this) }

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -38,6 +46,63 @@ public class CharacterListActivity : AppCompatActivity() {
})
characterListRv.adapter = characterListAdapter

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Timber.e(String(packageManager.instantAppCookie, Charset.defaultCharset()))
}

val request = CredentialRequest.Builder()
.setPasswordLoginSupported(true)
.setAccountTypes(IdentityProviders.GOOGLE, IdentityProviders.TWITTER)
.build()

credentialsClient.request(request)
.addOnCompleteListener {
Timber.e("complete: ${it.isSuccessful}")
if (it.isSuccessful) {
return@addOnCompleteListener
}

when (it.exception) {
is ResolvableApiException -> {
val hintRequest = HintRequest.Builder()
.setHintPickerConfig(CredentialPickerConfig.Builder()
.setShowCancelButton(true)
.build())
.setEmailAddressIdentifierSupported(true)
.setAccountTypes(IdentityProviders.GOOGLE)
.build()

val intent = credentialsClient.getHintPickerIntent(hintRequest)

try {
startIntentSenderForResult(intent.intentSender, RC_HINT, null, 0, 0, 0)
} catch (e: IntentSender.SendIntentException) {
Timber.e(e)
}
}
is ApiException -> {

}
}

}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

if (requestCode == RC_HINT) {
if (resultCode == RESULT_OK) {
val credential = data?.getParcelableExtra<Credential>(Credential.EXTRA_KEY);
Timber.e(credential?.id)
} else {
Timber.e("Hint Read: NOT OK")
}
}
}

companion object {
private const val RC_HINT = 123
}

}
4 changes: 4 additions & 0 deletions instantapp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
}
debug {}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
}
}
}

Expand Down
Loading

0 comments on commit efa6f04

Please sign in to comment.