Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(276)

Side by Side Diff: blimp/client/app/android/java/src/org/chromium/blimp/BlimpRendererActivity.java

Issue 1687393002: Add assigner support to Blimp (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix evil build break? Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.blimp; 5 package org.chromium.blimp;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.content.Intent; 8 import android.content.Intent;
9 import android.os.Bundle; 9 import android.os.Bundle;
10 10
11 import org.chromium.base.Log; 11 import org.chromium.base.Log;
12 import org.chromium.base.library_loader.ProcessInitException; 12 import org.chromium.base.library_loader.ProcessInitException;
13 import org.chromium.blimp.auth.RetryingTokenSource; 13 import org.chromium.blimp.auth.RetryingTokenSource;
14 import org.chromium.blimp.auth.TokenSource; 14 import org.chromium.blimp.auth.TokenSource;
15 import org.chromium.blimp.auth.TokenSourceImpl; 15 import org.chromium.blimp.auth.TokenSourceImpl;
16 import org.chromium.blimp.session.BlimpClientSession; 16 import org.chromium.blimp.session.BlimpClientSession;
17 import org.chromium.blimp.session.TabControlFeature; 17 import org.chromium.blimp.session.TabControlFeature;
18 import org.chromium.blimp.toolbar.Toolbar; 18 import org.chromium.blimp.toolbar.Toolbar;
19 import org.chromium.ui.widget.Toast; 19 import org.chromium.ui.widget.Toast;
20 20
21 /** 21 /**
22 * The {@link Activity} for rendering the main Blimp client. This loads the Bli mp rendering stack 22 * The {@link Activity} for rendering the main Blimp client. This loads the Bli mp rendering stack
23 * and displays it. 23 * and displays it.
24 */ 24 */
25 public class BlimpRendererActivity extends Activity implements BlimpLibraryLoade r.Callback, 25 public class BlimpRendererActivity extends Activity
26 TokenSource.Callback { 26 implements BlimpLibraryLoader.Callback, TokenSource.Callback, BlimpClien tSession.Callback {
27
28 private static final int ACCOUNT_CHOOSER_INTENT_REQUEST_CODE = 100; 27 private static final int ACCOUNT_CHOOSER_INTENT_REQUEST_CODE = 100;
29 private static final String TAG = "Blimp"; 28 private static final String TAG = "Blimp";
29
30 /** Provides user authentication tokens that can be used to query for engine assignments. This
31 * can potentially query GoogleAuthUtil for an OAuth2 authentication token with userinfo.email
32 * privileges for a chosen Android account. */
30 private TokenSource mTokenSource; 33 private TokenSource mTokenSource;
34
31 private BlimpView mBlimpView; 35 private BlimpView mBlimpView;
32 private Toolbar mToolbar; 36 private Toolbar mToolbar;
33 private BlimpClientSession mBlimpClientSession; 37 private BlimpClientSession mBlimpClientSession;
34 private TabControlFeature mTabControlFeature; 38 private TabControlFeature mTabControlFeature;
35 39
36 @Override 40 @Override
37 protected void onCreate(Bundle savedInstanceState) { 41 protected void onCreate(Bundle savedInstanceState) {
38 super.onCreate(savedInstanceState); 42 super.onCreate(savedInstanceState);
39 43
44 // Build a TokenSource that will internally retry accessing the underlyi ng TokenSourceImpl.
45 // This will exponentially backoff while it tries to get the access toke n. See
46 // {@link RetryingTokenSource} for more information. The underlying
47 // TokenSourceImpl will attempt to query GoogleAuthUtil, but might fail if there is no
48 // account selected, in which case it will ask this Activity to show an account chooser and
49 // notify it of the selection result.
40 mTokenSource = new RetryingTokenSource(new TokenSourceImpl(this)); 50 mTokenSource = new RetryingTokenSource(new TokenSourceImpl(this));
41 mTokenSource.setCallback(this); 51 mTokenSource.setCallback(this);
42 mTokenSource.getToken(); 52 mTokenSource.getToken();
43 53
44 try { 54 try {
45 BlimpLibraryLoader.startAsync(this, this); 55 BlimpLibraryLoader.startAsync(this, this);
46 } catch (ProcessInitException e) { 56 } catch (ProcessInitException e) {
47 Log.e(TAG, "Native startup exception", e); 57 Log.e(TAG, "Native startup exception", e);
48 System.exit(-1); 58 System.exit(-1);
49 return; 59 return;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 @Override 118 @Override
109 public void onStartupComplete(boolean success) { 119 public void onStartupComplete(boolean success) {
110 if (!success) { 120 if (!success) {
111 Log.e(TAG, "Native startup failed"); 121 Log.e(TAG, "Native startup failed");
112 finish(); 122 finish();
113 return; 123 return;
114 } 124 }
115 125
116 setContentView(R.layout.blimp_main); 126 setContentView(R.layout.blimp_main);
117 127
118 mBlimpClientSession = new BlimpClientSession(); 128 mBlimpClientSession = new BlimpClientSession(this);
119 mBlimpClientSession.connect();
120 129
121 mBlimpView = (BlimpView) findViewById(R.id.renderer); 130 mBlimpView = (BlimpView) findViewById(R.id.renderer);
122 mBlimpView.initializeRenderer(mBlimpClientSession); 131 mBlimpView.initializeRenderer(mBlimpClientSession);
123 132
124 mToolbar = (Toolbar) findViewById(R.id.toolbar); 133 mToolbar = (Toolbar) findViewById(R.id.toolbar);
125 mToolbar.initialize(mBlimpClientSession); 134 mToolbar.initialize(mBlimpClientSession);
126 135
127 mTabControlFeature = new TabControlFeature(mBlimpClientSession, mBlimpVi ew); 136 mTabControlFeature = new TabControlFeature(mBlimpClientSession, mBlimpVi ew);
128 mToolbar.loadUrl("http://www.google.com/"); 137 mToolbar.loadUrl("http://www.google.com/");
129 } 138 }
130 139
131 // TokenSource.Callback implementation. 140 // TokenSource.Callback implementation.
132 @Override 141 @Override
133 public void onTokenReceived(String token) { 142 public void onTokenReceived(String token) {
134 // TODO(dtrainor): Do something with the token and the assigner! 143 if (mBlimpClientSession != null) mBlimpClientSession.connect(token);
135 Toast.makeText(this, R.string.signin_get_token_succeeded, Toast.LENGTH_S HORT).show();
136 } 144 }
137 145
138 @Override 146 @Override
139 public void onTokenUnavailable(boolean isTransient) { 147 public void onTokenUnavailable(boolean isTransient) {
140 // Ignore isTransient here because we're relying on the auto-retry Token Source. 148 // Ignore isTransient here because we're relying on the auto-retry Token Source.
141 // TODO(dtrainor): Show a better error dialog/message. 149 // TODO(dtrainor): Show a better error dialog/message.
142 Toast.makeText(this, R.string.signin_get_token_failed, Toast.LENGTH_LONG ).show(); 150 Toast.makeText(this, R.string.signin_get_token_failed, Toast.LENGTH_LONG ).show();
143 finish();
144 } 151 }
145 152
146 @Override 153 @Override
147 public void onNeedsAccountToBeSelected(Intent suggestedIntent) { 154 public void onNeedsAccountToBeSelected(Intent suggestedIntent) {
148 startActivityForResult(suggestedIntent, ACCOUNT_CHOOSER_INTENT_REQUEST_C ODE); 155 startActivityForResult(suggestedIntent, ACCOUNT_CHOOSER_INTENT_REQUEST_C ODE);
149 } 156 }
157
158 // BlimpClientSession.Callback implementation.
159 @Override
160 public void onAssignmentReceived(int result, int suggestedMessageResourceId) {
161 Toast.makeText(this, suggestedMessageResourceId, Toast.LENGTH_LONG).show ();
162 }
150 } 163 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698