Skip to content

Commit 0df7efb

Browse files
committed
Make a accountManager model
1 parent 487eee9 commit 0df7efb

17 files changed

+596
-45
lines changed

.idea/misc.xml

+28-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+4-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations.xml

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

GIthubKnife.iml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.id="GIthubKnife" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="java-gradle" name="Java-Gradle">
5+
<configuration>
6+
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
7+
<option name="BUILDABLE" value="false" />
8+
</configuration>
9+
</facet>
10+
</component>
11+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
12+
<exclude-output />
13+
<content url="file://$MODULE_DIR$">
14+
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
15+
</content>
16+
<orderEntry type="inheritedJdk" />
17+
<orderEntry type="sourceFolder" forTests="false" />
18+
</component>
19+
</module>

app/app.iml

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="GIthubKnife" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="android-gradle" name="Android-Gradle">
5+
<configuration>
6+
<option name="GRADLE_PROJECT_PATH" value=":app" />
7+
</configuration>
8+
</facet>
9+
<facet type="android" name="Android">
10+
<configuration>
11+
<option name="SELECTED_BUILD_VARIANT" value="debug" />
12+
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
13+
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
14+
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15+
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
16+
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
17+
<afterSyncTasks>
18+
<task>generateDebugAndroidTestSources</task>
19+
<task>generateDebugSources</task>
20+
</afterSyncTasks>
21+
<option name="ALLOW_USER_CONFIGURATION" value="false" />
22+
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
23+
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
24+
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
25+
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
26+
</configuration>
27+
</facet>
28+
</component>
29+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
30+
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
31+
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
32+
<exclude-output />
33+
<content url="file://$MODULE_DIR$">
34+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
35+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
36+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
37+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
38+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
39+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" />
40+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
41+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
42+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
43+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
44+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
45+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" type="java-test-resource" />
46+
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
47+
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
48+
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
49+
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
50+
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
51+
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
52+
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
53+
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
54+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
55+
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
56+
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
57+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
58+
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
59+
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
60+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
61+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
62+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
63+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
64+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
65+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
66+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
67+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
68+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
69+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
70+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
71+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
72+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
73+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
74+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/jars" />
75+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars" />
76+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
77+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
78+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
79+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
80+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
81+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
82+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
83+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
84+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
85+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
86+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
87+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
88+
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
89+
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
90+
</content>
91+
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
92+
<orderEntry type="sourceFolder" forTests="false" />
93+
<orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" />
94+
<orderEntry type="library" exported="" name="support-annotations-22.2.0" level="project" />
95+
<orderEntry type="library" exported="" name="appcompat-v7-22.2.0" level="project" />
96+
</component>
97+
</module>

app/src/main/AndroidManifest.xml

+28-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,41 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.github.quinn.githubknife" >
3+
package="com.quinn.githubknife" >
4+
<!-- client -->
5+
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
6+
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
7+
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
48

9+
<!-- Authenticator -->
10+
<uses-permission android:name="android.permission.INTERNET"/>
11+
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
512
<application
613
android:allowBackup="true"
714
android:icon="@mipmap/ic_launcher"
815
android:label="@string/app_name"
916
android:theme="@style/AppTheme" >
1017
<activity
11-
android:name=".LoginActivity"
18+
android:name=".account.LoginActivity"
1219
android:label="@string/app_name" >
20+
21+
</activity>
22+
23+
<service
24+
android:name=".account.AccountService"
25+
android:enabled="true"
26+
android:exported="true" >
27+
<intent-filter>
28+
<action android:name="android.accounts.AccountAuthenticator" />
29+
</intent-filter>
30+
31+
<meta-data
32+
android:name="android.accounts.AccountAuthenticator"
33+
android:resource="@xml/authenticator" />
34+
</service>
35+
36+
<activity
37+
android:name=".MainActivity"
38+
android:label="@string/title_activity_main" >
1339
<intent-filter>
1440
<action android:name="android.intent.action.MAIN" />
1541

app/src/main/java/com/github/quinn/githubknife/LoginActivity.java

-37
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package com.quinn.githubknife;
2+
3+
import android.accounts.Account;
4+
import android.accounts.AccountManager;
5+
import android.accounts.AccountManagerFuture;
6+
import android.os.Bundle;
7+
import android.support.v7.app.AppCompatActivity;
8+
import android.util.Log;
9+
import android.view.Menu;
10+
import android.view.MenuItem;
11+
import android.view.View;
12+
import android.widget.TextView;
13+
14+
public class MainActivity extends AppCompatActivity {
15+
16+
17+
TextView tv;
18+
19+
@Override
20+
protected void onCreate(Bundle savedInstanceState) {
21+
super.onCreate(savedInstanceState);
22+
setContentView(R.layout.activity_main);
23+
24+
tv = (TextView) findViewById(R.id.token);
25+
tv.setOnClickListener(new View.OnClickListener() {
26+
@Override
27+
public void onClick(View v) {
28+
Account account = new Account("Leaking", "com.githubknife");
29+
getExistingAccountAuthToken(account,"ah");
30+
}
31+
});
32+
33+
}
34+
35+
private void getExistingAccountAuthToken(Account account, String authTokenType) {
36+
System.out.println("try to get token in MainActivyt");
37+
38+
AccountManager mAccountManager = AccountManager.get(getBaseContext());
39+
final AccountManagerFuture<Bundle> future = mAccountManager.getAuthToken(account, authTokenType, null, this, null, null);
40+
41+
new Thread(new Runnable() {
42+
@Override
43+
public void run() {
44+
try {
45+
Bundle bnd = future.getResult();
46+
47+
final String authtoken = bnd.getString(AccountManager.KEY_AUTHTOKEN);
48+
Log.d("udinic", "GetToken Bundle is " + bnd);
49+
} catch (Exception e) {
50+
e.printStackTrace();
51+
}
52+
}
53+
}).start();
54+
}
55+
56+
57+
@Override
58+
public boolean onCreateOptionsMenu(Menu menu) {
59+
// Inflate the menu; this adds items to the action bar if it is present.
60+
getMenuInflater().inflate(R.menu.menu_main, menu);
61+
return true;
62+
}
63+
64+
@Override
65+
public boolean onOptionsItemSelected(MenuItem item) {
66+
// Handle action bar item clicks here. The action bar will
67+
// automatically handle clicks on the Home/Up button, so long
68+
// as you specify a parent activity in AndroidManifest.xml.
69+
int id = item.getItemId();
70+
71+
//noinspection SimplifiableIfStatement
72+
if (id == R.id.action_settings) {
73+
return true;
74+
}
75+
76+
return super.onOptionsItemSelected(item);
77+
}
78+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.quinn.githubknife.account;
2+
3+
import android.app.Service;
4+
import android.content.Intent;
5+
import android.os.IBinder;
6+
7+
public class AccountService extends Service {
8+
9+
private Authenticator authenticator;
10+
11+
public AccountService() {
12+
}
13+
14+
@Override
15+
public void onCreate() {
16+
super.onCreate();
17+
authenticator = new Authenticator(this);
18+
}
19+
20+
@Override
21+
public IBinder onBind(Intent intent) {
22+
// TODO: Return the communication channel to the service.
23+
return authenticator.getIBinder();
24+
}
25+
}

0 commit comments

Comments
 (0)