Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
language: android
android:
components:
- build-tools-27.0.3
- android-27
- build-tools-30.0.0
- android-230
script:
- ./gradlew check jacoco assemble
- bash <(curl -s https://codecov.io/bash)
before_install:
- yes | sdkmanager "platforms;android-30"
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
Expand Down
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,26 @@ either through custom URI scheme redirects, or App Links.
AS's that assume all clients are web-based or require clients to maintain
confidentiality of the client secrets may not work well.

From Android API 30 (R) and above, set [queries](https://developer.android.com/preview/privacy/package-visibility) in the manifest,
to enable AppAuth searching for usable installed browsers.
```xml
<manifest package="com.example.game">
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.APP_BROWSER" />
<data android:scheme="https" />
</intent>
</queries>
...
</manifest>
```

## Demo app

A demo app is contained within this repository. For instructions on how to
Expand Down
14 changes: 13 additions & 1 deletion app/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,23 @@
-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="net.openid.appauthdemo" >

<uses-permission android:name="android.permission.INTERNET" />

<queries>
Comment thread
hnljp marked this conversation as resolved.
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.APP_BROWSER" />
<data android:scheme="https" />
</intent>
</queries>

<application
android:allowBackup="false"
android:fullBackupContent="false"
Expand Down
17 changes: 8 additions & 9 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,17 @@ android {
}
}

project.ext.glideVersion = '4.7.1'

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':library')
implementation "com.android.support:appcompat-v7:${rootProject.supportLibVersion}"
implementation "com.android.support:design:${rootProject.supportLibVersion}"
implementation "com.github.bumptech.glide:glide:${project.glideVersion}"
implementation 'com.squareup.okio:okio:1.14.1'
implementation 'joda-time:joda-time:2.10'

annotationProcessor "com.github.bumptech.glide:compiler:${project.glideVersion}"
implementation "androidx.appcompat:appcompat:${project.androidXVersions.appcompat}"
implementation "androidx.annotation:annotation:${project.androidXVersions.annotation}"
implementation "com.google.android.material:material:${project.googleVersions.material}"
implementation "com.github.bumptech.glide:glide:${project.googleVersions.glide}"
implementation "com.squareup.okio:okio:${project.okioVersion}"
implementation "joda-time:joda-time:${project.jodaVersion}"

annotationProcessor "com.github.bumptech.glide:compiler:${project.googleVersions.glide}"
}

apply from: '../config/style.gradle'
2 changes: 1 addition & 1 deletion app/java/net/openid/appauthdemo/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

package net.openid.appauthdemo;

import android.support.v7.app.AppCompatDelegate;
import androidx.appcompat.app.AppCompatDelegate;

/**
* Application object; ensures that the support library is correctly configured for use of
Expand Down
7 changes: 4 additions & 3 deletions app/java/net/openid/appauthdemo/AuthStateManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@

import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.AnyThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;

import androidx.annotation.AnyThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import net.openid.appauth.AuthState;
import net.openid.appauth.AuthorizationException;
import net.openid.appauth.AuthorizationResponse;
Expand Down
3 changes: 2 additions & 1 deletion app/java/net/openid/appauthdemo/BrowserSelectionAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;

import net.openid.appauth.browser.BrowserDescriptor;
import net.openid.appauth.browser.BrowserSelector;

Expand Down
5 changes: 3 additions & 2 deletions app/java/net/openid/appauthdemo/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import net.openid.appauth.connectivity.ConnectionBuilder;
import net.openid.appauth.connectivity.DefaultConnectionBuilder;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@

import android.annotation.SuppressLint;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import net.openid.appauth.Preconditions;
import net.openid.appauth.connectivity.ConnectionBuilder;

Expand Down
21 changes: 12 additions & 9 deletions app/java/net/openid/appauthdemo/LoginActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,6 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.AnyThread;
import android.support.annotation.ColorRes;
import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.support.customtabs.CustomTabsIntent;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
Expand All @@ -42,6 +33,17 @@
import android.widget.Spinner;
import android.widget.TextView;

import androidx.annotation.AnyThread;
import androidx.annotation.ColorRes;
import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import androidx.appcompat.app.AppCompatActivity;
import androidx.browser.customtabs.CustomTabsIntent;

import com.google.android.material.snackbar.Snackbar;

import net.openid.appauth.AppAuthConfiguration;
import net.openid.appauth.AuthState;
import net.openid.appauth.AuthorizationException;
Expand Down Expand Up @@ -171,6 +173,7 @@ protected void onDestroy() {

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
displayAuthOptions();
if (resultCode == RESULT_CANCELED) {
displayAuthCancelled();
Expand Down
12 changes: 7 additions & 5 deletions app/java/net/openid/appauthdemo/TokenActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,20 @@
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.MainThread;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.MainThread;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.material.snackbar.Snackbar;

import net.openid.appauth.AppAuthConfiguration;
import net.openid.appauth.AuthState;
import net.openid.appauth.AuthorizationException;
Expand Down
14 changes: 7 additions & 7 deletions app/res/layout/activity_login.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
Expand All @@ -9,7 +9,7 @@
android:layout_height="match_parent"
android:fitsSystemWindows="true" >

<android.support.v4.widget.NestedScrollView
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
Expand Down Expand Up @@ -86,19 +86,19 @@
android:layout_marginTop="16dp"
style="@style/Base.TextAppearance.AppCompat.Subhead" />

<android.support.design.widget.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">

<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/login_hint_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/login_hint_value"/>

</android.support.design.widget.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>

<TextView
android:layout_width="match_parent"
Expand Down Expand Up @@ -170,5 +170,5 @@

</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
4 changes: 2 additions & 2 deletions app/res/layout/activity_token.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
Expand Down Expand Up @@ -192,4 +192,4 @@
</LinearLayout>
</LinearLayout>
</ScrollView>
</android.support.design.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
34 changes: 26 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import org.ajoberstar.grgit.Grgit

apply from: 'config/keystore.gradle'

buildscript {
Expand All @@ -6,10 +8,11 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.android.tools.build:gradle:4.0.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
classpath 'org.ajoberstar:gradle-git:1.7.2'
classpath "org.jacoco:org.jacoco.core:0.8.5"
}
}

Expand All @@ -24,7 +27,7 @@ subprojects {
ext.verifyKeystore()

try {
def grgit = org.ajoberstar.grgit.Grgit.open(dir: '.')
def grgit = Grgit.open(dir: '.')
def lastCommit = grgit.head()

project.ext.versionNum = grgit.log(includes:['HEAD']).size()
Expand All @@ -33,16 +36,31 @@ try {
if (project.ext.versionName == null) {
project.ext.versionName = 'DEV'
}
} catch (Exception ex) {
} catch (Exception ignored) {
project.ext.versionNum = 0
project.ext.versionName = 'DEV'
project.ext.versionDate = new Date()
}

project.ext.minSdkVersion = 16
project.ext.compileSdkVersion = 27
project.ext.buildToolsVersion = '27.0.3'
project.ext.supportLibVersion = '27.1.1'
project.ext {
minSdkVersion = 16
compileSdkVersion = 30
buildToolsVersion = '30.0.0'

googleVersions = [
glide : '4.11.0',
material : '1.1.0',
]

androidXVersions = [
annotation : '1.1.0',
appCompat : '1.1.0',
browser : '1.2.0',
]

okioVersion = '1.17.5'
jodaVersion = '2.10.6'
}

task showVersion {
doLast {
Expand Down
4 changes: 2 additions & 2 deletions config/android-common.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ android {
main.res.srcDir 'res'
main.assets.srcDir 'assets'
main.resources.srcDir 'java'
test.setRoot('javatests');
test.java.srcDir('javatests');
test.setRoot('javatests')
test.java.srcDir('javatests')
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand Down
Loading