I don't even know what title this question should have.
So, I am working on a library to make Google-Billing as easy as possible to integrate.
Everything started after I've upgraded the library to Google's Billing v4 which replaces Purchase#getSku with Purchase#getSkus().
This is the before and after migration to billing v4:
Before (v3 library):
private void processPurchases(List<Purchase> allPurchases, boolean purchasedProductsFetched) {
if (!allPurchases.isEmpty()) {
List<PurchaseInfo> signatureValidPurchases = new ArrayList<>();
//create a list with signature valid purchases
List<Purchase> validPurchases = allPurchases.stream().filter(this::isPurchaseSignatureValid).collect(Collectors.toList());
for (Purchase purchase : validPurchases) {
Optional<SkuInfo> skuInfo = fetchedSkuInfoList.stream().filter(it -> it.getSkuId().equals(purchase.getSku())).findFirst();
if (skuInfo.isPresent()) {
SkuDetails skuDetails = skuInfo.get().getSkuDetails();
PurchaseInfo purchaseInfo = new PurchaseInfo(generateSkuInfo(skuDetails), purchase);
signatureValidPurchases.add(purchaseInfo);
}
}
if (purchasedProductsFetched) {
fetchedPurchasedProducts = true;
billingEventListener.onPurchasedProductsFetched(signatureValidPurchases);
} else {
billingEventListener.onProductsPurchased(signatureValidPurchases);
}
purchasedProductsList.addAll(signatureValidPurchases);
for (PurchaseInfo purchaseInfo : signatureValidPurchases) {
consume(purchaseInfo);
if (shouldAutoAcknowledge) {
boolean wasConsumedBefore = purchaseInfo.getSkuProductType() == SkuProductType.CONSUMABLE;
if (!wasConsumedBefore) {
acknowledgePurchase(purchaseInfo);
}
}
}
}
}
After (v4 library):
private void processPurchases(List<Purchase> allPurchases, boolean purchasedProductsFetched) {
if (!allPurchases.isEmpty()) {
List<PurchaseInfo> signatureValidPurchases = new ArrayList<>();
//create a list with signature valid purchases
List<Purchase> validPurchases = allPurchases.stream().filter(this::isPurchaseSignatureValid).collect(Collectors.toList());
for (Purchase purchase : validPurchases) {
//query all SKUs as a list
List<String> purchasesSkus = purchase.getSkus();
//loop through all SKUs and progress for each SKU individually
for (int i = 0; i < purchasesSkus.size(); i++) {
String purchasesSku = purchasesSkus.get(i);
Optional<SkuInfo> skuInfo = fetchedSkuInfoList.stream().filter(it -> it.getSkuId().equals(purchasesSku)).findFirst();
if (skuInfo.isPresent()) {
SkuDetails skuDetails = skuInfo.get().getSkuDetails();
PurchaseInfo purchaseInfo = new PurchaseInfo(generateSkuInfo(skuDetails), purchase);
signatureValidPurchases.add(purchaseInfo);
}
}
}
if (purchasedProductsFetched) {
fetchedPurchasedProducts = true;
billingEventListener.onPurchasedProductsFetched(signatureValidPurchases);
} else {
billingEventListener.onProductsPurchased(signatureValidPurchases);
}
purchasedProductsList.addAll(signatureValidPurchases);
for (PurchaseInfo purchaseInfo : signatureValidPurchases) {
consume(purchaseInfo);
if (shouldAutoAcknowledge) {
boolean wasConsumedBefore = purchaseInfo.getSkuProductType() == SkuProductType.CONSUMABLE;
if (!wasConsumedBefore) {
acknowledgePurchase(purchaseInfo);
}
}
}
}
}
Notice how getSku() and getSkus() changed.
So far so good. Moving on to the problem...
In my library, I have a listener called onProductsFetched which will provide a List<SkuInfo> with fetched SKU details.
Example:
billingConnector.setBillingEventListener(new BillingEventListener() {
#Override
public void onProductsFetched(#NonNull List<SkuInfo> skuDetailsList) {
String sku;
for (SkuInfo skuInfo : skuDetailsList) {
sku = skuInfo.getSkuId();
if (sku.equalsIgnoreCase(getString(R.string.billing_test_purchase))) {
Log.d("IapConnector", "SKU FOUND: " + sku);
Toast.makeText(SettingsActivity.this, "Fetched: " + sku, Toast.LENGTH_SHORT).show();
}
}
}
});
Explaining the problem:
When using the code presented above in Before (v3 library) everything works as expected, the listener is triggered and the toast is shown. After switching to After (v4 library) the toast, breaks everything. The log is registered in the logcat but the toast doesn't show. Even more, if I call another log after the toast it doesn't get registered either, in fact nothing will be called after the toast, not even finish(). But wait, there's more, if I don't call the toast at all everything works well. If I replace the toast with a snackbar, the snackbar will show.
What can cause this problem? Any ideas?
Update:
If I call the Toast with delay, everything works as expected.
final Handler handler = new Handler(Looper.getMainLooper());
String finalSku = sku;
handler.postDelayed(new Runnable() {
#Override
public void run() {
Toast.makeText(SettingsActivity.this, "Fetched: " + finalSku, Toast.LENGTH_SHORT).show();
}
}, 100);
Update2:
Logcat. Notice D/IapConnector: SKU FOUND: test_purchase7 is called which is the log before the Toast
2021-06-07 11:11:37.633 31680-31680/games.moisoni.evfp I/ViewRootImpl#ef10be4[MainActivity]: ViewPostIme pointer 0
2021-06-07 11:11:37.710 31680-31680/games.moisoni.evfp I/ViewRootImpl#ef10be4[MainActivity]: ViewPostIme pointer 1
2021-06-07 11:11:37.747 31680-32423/games.moisoni.evfp V/FA: Recording user engagement, ms: 11555
2021-06-07 11:11:37.752 31680-32423/games.moisoni.evfp V/FA: Connecting to remote service
2021-06-07 11:11:37.755 31680-32423/games.moisoni.evfp V/FA: Activity paused, time: 53257103
2021-06-07 11:11:37.769 31680-32423/games.moisoni.evfp V/FA: Connection attempt already in progress
2021-06-07 11:11:37.770 31680-32417/games.moisoni.evfp V/FA: onActivityCreated
2021-06-07 11:11:37.772 31680-31680/games.moisoni.evfp I/DecorView: [INFO] isPopOver=false, config=true
2021-06-07 11:11:37.772 31680-31680/games.moisoni.evfp I/DecorView: updateCaptionType >> DecorView#25a7196[], isFloating=false, isApplication=true, hasWindowDecorCaption=false, hasWindowControllerCallback=true
2021-06-07 11:11:37.772 31680-31680/games.moisoni.evfp D/DecorView: setCaptionType = 0, this = DecorView#25a7196[]
2021-06-07 11:11:37.782 31680-31680/games.moisoni.evfp D/ScrollView: initGoToTop
2021-06-07 11:11:37.830 31680-31680/games.moisoni.evfp D/IapConnector: Billing service: connecting...
2021-06-07 11:11:37.853 31680-32423/games.moisoni.evfp V/FA: Activity resumed, time: 53257213
2021-06-07 11:11:37.857 31680-31680/games.moisoni.evfp D/InputTransport: Input channel constructed: 'f0be3be', fd=218
2021-06-07 11:11:37.859 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: setView = com.android.internal.policy.DecorView#25a7196 TM=true
2021-06-07 11:11:37.870 31680-32423/games.moisoni.evfp V/FA: Connection attempt already in progress
2021-06-07 11:11:37.872 31680-32423/games.moisoni.evfp V/FA: Connection attempt already in progress
2021-06-07 11:11:37.879 31680-31680/games.moisoni.evfp D/ViewRootImpl#d0eac04[SettingsActivity]: controlInsetsForCompatibility: hideByFlags=0x3, showByFlags=0x0, flags=0x89810500, sysUiVis=0x1706, matchParent=true, nonAttachedAppWindow=true
2021-06-07 11:11:37.879 31680-31680/games.moisoni.evfp D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=1, host=games.moisoni.evfp/games.moisoni.evfp.SettingsActivity, from=android.view.InsetsSourceConsumer.hide:236 android.view.InsetsController.collectSourceControls:1172 android.view.InsetsController.controlAnimationUnchecked:1049 android.view.InsetsController.applyAnimation:1417 android.view.InsetsController.hide:984 android.view.InsetsController.hide:967 android.view.ViewRootImpl.controlInsetsForCompatibility:2852 android.view.ViewRootImpl.performTraversals:3314 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965
2021-06-07 11:11:37.879 31680-31680/games.moisoni.evfp D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=0, host=games.moisoni.evfp/games.moisoni.evfp.SettingsActivity, from=android.view.InsetsSourceConsumer.hide:236 android.view.InsetsController.collectSourceControls:1172 android.view.InsetsController.controlAnimationUnchecked:1049 android.view.InsetsController.applyAnimation:1417 android.view.InsetsController.hide:984 android.view.InsetsController.hide:967 android.view.ViewRootImpl.controlInsetsForCompatibility:2852 android.view.ViewRootImpl.performTraversals:3314 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965
2021-06-07 11:11:37.893 31680-31680/games.moisoni.evfp I/SurfaceControl: assignNativeObject: nativeObject = 0 Surface(name=null)/#0xa900b0f / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995
2021-06-07 11:11:37.894 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: Relayout returned: old=(0,0,1440,3040) new=(0,144,1440,3040) req=(1440,3040)0 dur=10 res=0x7 s={true 535365349344} ch=true fn=-1
2021-06-07 11:11:37.902 31680-31680/games.moisoni.evfp D/ScrollView: onsize change changed
2021-06-07 11:11:37.902 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: [DP] dp(1) 1 android.view.ViewRootImpl.reportNextDraw:10951 android.view.ViewRootImpl.performTraversals:3845 android.view.ViewRootImpl.doTraversal:2618
2021-06-07 11:11:37.902 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: [DP] pd() Asnyc report
2021-06-07 11:11:37.922 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: [DP] pdf(0) 1 android.view.ViewRootImpl.lambda$performDraw$1$ViewRootImpl:4668 android.view.-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI.run:6 android.os.Handler.handleCallback:938
2021-06-07 11:11:37.922 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: [DP] rdf()
2021-06-07 11:11:37.927 31680-31680/games.moisoni.evfp I/ViewRootImpl#ef10be4[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2021-06-07 11:11:37.928 31680-32758/games.moisoni.evfp D/IapConnector: Billing service: connected
2021-06-07 11:11:37.933 31680-32423/games.moisoni.evfp D/FA: Connected to remote service
2021-06-07 11:11:37.935 31680-32423/games.moisoni.evfp V/FA: Processing queued up service tasks: 4
2021-06-07 11:11:37.938 31680-32759/games.moisoni.evfp D/IapConnector: Query SKU Details: data found
2021-06-07 11:11:37.938 31680-32758/games.moisoni.evfp D/IapConnector: Subscriptions support check: success
2021-06-07 11:11:37.939 31680-32759/games.moisoni.evfp D/IapConnector: SKU FOUND: test_purchase7
2021-06-07 11:11:37.940 31680-32759/games.moisoni.evfp D/CompatibilityChangeReporter: Compat change id reported: 147798919; UID 10745; state: ENABLED
2021-06-07 11:11:37.948 31680-31680/games.moisoni.evfp D/SurfaceControl: hide : mNativeObject = 531070505712 - sc.mNativeObject = 530532840928 - Surface(name=Surface(name=a8e3812 NavigationBar0)/#0x38b32cd - animation-leash)/#0x2a3e45d
2021-06-07 11:11:37.948 31680-31680/games.moisoni.evfp D/SurfaceControl: nativeSetFlags Done : Surface(name=Surface(name=a8e3812 NavigationBar0)/#0x38b32cd - animation-leash)/#0x2a3e45d
2021-06-07 11:11:37.949 31680-31680/games.moisoni.evfp D/SurfaceControl: hide : mNativeObject = 531070497088 - sc.mNativeObject = 530532838464 - Surface(name=Surface(name=e511e35 StatusBar)/#0xbf071b - animation-leash)/#0xc4ac1d2
2021-06-07 11:11:37.949 31680-31680/games.moisoni.evfp D/SurfaceControl: nativeSetFlags Done : Surface(name=Surface(name=e511e35 StatusBar)/#0xbf071b - animation-leash)/#0xc4ac1d2
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532781344 - Surface(name=Surface(name=37630c6 InputMethod)/#0xd11e623 - animation-leash)/#0xe000b05 / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsSourceConsumer.setControl:202 android.view.ImeInsetsSourceConsumer.setControl:154
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532781344]
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532781344]
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532786048 - Surface(name=Surface(name=a8e3812 NavigationBar0)/#0x38b32cd - animation-leash)/#0xd4eb2a3 / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsSourceConsumer.setControl:202 android.view.InsetsController.onControlsChanged:833
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532786048]
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532786048]
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532732064 - Surface(name=Surface(name=e511e35 StatusBar)/#0xbf071b - animation-leash)/#0x201e9a0 / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsSourceConsumer.setControl:202 android.view.InsetsController.onControlsChanged:833
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532732064]
2021-06-07 11:11:37.951 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532732064]
2021-06-07 11:11:37.955 31680-31680/games.moisoni.evfp I/ViewRootImpl#d0eac04[SettingsActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2021-06-07 11:11:37.955 31680-31680/games.moisoni.evfp D/InputMethodManager: prepareNavigationBarInfo() DecorView#25a7196[SettingsActivity]
2021-06-07 11:11:37.955 31680-31680/games.moisoni.evfp D/InputMethodManager: getNavigationBarColor() -16711423
2021-06-07 11:11:37.957 31680-31680/games.moisoni.evfp D/InputMethodManager: prepareNavigationBarInfo() DecorView#25a7196[SettingsActivity]
2021-06-07 11:11:37.957 31680-31680/games.moisoni.evfp D/InputMethodManager: getNavigationBarColor() -16711423
2021-06-07 11:11:37.957 31680-31680/games.moisoni.evfp V/InputMethodManager: Starting input: tba=games.moisoni.evfp ic=null mNaviBarColor -16711423 mIsGetNaviBarColorSuccess true , NavVisible : false , NavTrans : false
2021-06-07 11:11:37.957 31680-31680/games.moisoni.evfp D/InputMethodManager: startInputInner - Id : 0
2021-06-07 11:11:37.957 31680-31680/games.moisoni.evfp I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2021-06-07 11:11:37.959 31680-31680/games.moisoni.evfp D/InputTransport: Input channel constructed: 'ClientS', fd=221
2021-06-07 11:11:37.959 31680-31680/games.moisoni.evfp D/InputTransport: Input channel destroyed: 'ClientS', fd=111
2021-06-07 11:11:37.998 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532838240 - Surface(name=Surface(name=37630c6 InputMethod)/#0xd11e623 - animation-leash)/#0x46f291e / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsSourceConsumer.setControl:202 android.view.ImeInsetsSourceConsumer.setControl:154
2021-06-07 11:11:37.998 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532838240]
2021-06-07 11:11:37.998 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532838240]
2021-06-07 11:11:37.999 31680-31680/games.moisoni.evfp D/SurfaceControl: hide : mNativeObject = 531069881968 - sc.mNativeObject = 530532839920 - Surface(name=Surface(name=37630c6 InputMethod)/#0xd11e623 - animation-leash)/#0xd0fd5ff
2021-06-07 11:11:37.999 31680-31680/games.moisoni.evfp D/SurfaceControl: nativeSetFlags Done : Surface(name=Surface(name=37630c6 InputMethod)/#0xd11e623 - animation-leash)/#0xd0fd5ff
2021-06-07 11:11:38.001 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532840928 - Surface(name=Surface(name=a8e3812 NavigationBar0)/#0x38b32cd - animation-leash)/#0x2a3e45d / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsSourceConsumer.setControl:202 android.view.InsetsController.onControlsChanged:833
2021-06-07 11:11:38.001 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532840928]
2021-06-07 11:11:38.001 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532840928]
2021-06-07 11:11:38.001 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532838464 - Surface(name=Surface(name=e511e35 StatusBar)/#0xbf071b - animation-leash)/#0xc4ac1d2 / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsSourceConsumer.setControl:202 android.view.InsetsController.onControlsChanged:833
2021-06-07 11:11:38.001 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532838464]
2021-06-07 11:11:38.001 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532838464]
2021-06-07 11:11:38.185 31680-31680/games.moisoni.evfp I/ViewRootImpl#ef10be4[MainActivity]: stopped(true) old=false
2021-06-07 11:11:38.187 31680-31680/games.moisoni.evfp I/SurfaceControl: release : mNativeObject = 530532758608 - Surface(name=games.moisoni.evfp/games.moisoni.evfp.MainActivity$_31680)/#0xf744215 / android.view.ViewRootImpl.destroySurface:2484 android.view.ViewRootImpl.setWindowStopped:2332 android.view.WindowManagerGlobal.setStoppedState:741 android.app.Activity.performStop:8423
2021-06-07 11:11:38.187 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject s[530532758608]
2021-06-07 11:11:38.187 31680-31680/games.moisoni.evfp I/SurfaceControl: nativeRelease nativeObject e[530532758608]
2021-06-07 11:11:38.202 31680-32437/games.moisoni.evfp W/libEGL: EGLNativeWindowType 0x7ca63be2a0 disconnect failed
2021-06-07 11:11:38.206 31680-31680/games.moisoni.evfp I/SurfaceControl: assignNativeObject: nativeObject = 0 Surface(name=null)/#0xf744215 / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1810 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995
2021-06-07 11:11:38.206 31680-31680/games.moisoni.evfp I/SurfaceControl: assignNativeObject: nativeObject = 0 Surface(name=null)/#0xda8bd8d / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9965 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995
2021-06-07 11:11:38.207 31680-31680/games.moisoni.evfp I/ViewRootImpl#ef10be4[MainActivity]: Relayout returned: old=(0,144,1440,3040) new=(0,144,1440,3040) req=(1440,2896)8 dur=4 res=0x5 s={false 0} ch=false fn=-1
In V4.0 BillingClient method callbacks call in background thread, not in Main thread.
Workaround is to change thread to Main in BillingClient callbacks.
Call you method processPurchases() with Toast in UI thread.
#researcher answer is a totally valid option but for me, the best way to solve this problem was to trigger the listeners on the main UI thread, instead of changing the thread of all BillingClient callbacks.
His answer will remain accepted because he found the problem.
To call the listeners on the UI thread I've created a method:
private Handler findUiHandler() {
return new Handler(Looper.getMainLooper());
}
And then call the listeners like this:
findUiHandler().post(() -> billingEventListener.onProductsFetched(fetchedSkuInfo));
Related
I'm using Firebase Authentication in my app and I have the following code to allow the user to sign out:
FirebaseAuth.getInstance().signOut()
userInfo.removeEventListener(listener)
val intent = Intent(this#SettingsFragment.context, LoginActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK.or(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
The code successfully logs out the user, but I get this toast that says The client does not have permission to perform this operation. Why am I getting this toast? How do I prevent it from occurring?
UPDATE 1: Firebase Realtime Database Code and Removal of Event Listener
Below I have included my code for using Firebase Realtime Database:
userInfo = database.getReference("users").child(auth.currentUser!!.uid)
listener = userInfo.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (postSnapshot in dataSnapshot.children) {
if (postSnapshot.key == "firstName") {
firstNamePreference.text = postSnapshot.getValue(String::class.java)
} else if (postSnapshot.key == "lastName") {
lastNamePreference.text = postSnapshot.getValue(String::class.java)
} else if (postSnapshot.key == "username") {
userNamePreference.title =
"Username: ${postSnapshot.getValue(String::class.java)}"
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
Toast.makeText(
context, databaseError.message,
Toast.LENGTH_LONG
).show()
}
})
I have also included userInfo.removeEventListener(listener) in my sign out code, but I am still getting the error message.
UPDATE 2: Logcat in debug mode for logging out the user
D/InputTransport: Input channel destroyed: fd=77
D/ViewRootImpl#b3aa7b8[SettingsActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager: prepareNavigationBarInfo() DecorView#6d11dc3[SettingsActivity]
D/InputMethodManager: getNavigationBarColor() -855310
W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy#f47f5fd
W/SyncTree: Listen at /users/ezTJRHVKZXhHyMGQGGljdQpfzGv1 failed: DatabaseError: This client does not have permission to perform this operation
I/DecorView: createDecorCaptionView >> DecorView#aa5b516[], isFloating: false, isApplication: true, hasWindowDecorCaption: false, hasWindowControllerCallback: true
D/InputTransport: Input channel constructed: fd=78
D/ViewRootImpl#46f9f6b[LoginActivity]: setView = DecorView#aa5b516[LoginActivity] TM=true MM=false
D/ViewRootImpl#46f9f6b[LoginActivity]: dispatchAttachedToWindow
D/ViewRootImpl#46f9f6b[LoginActivity]: Relayout returned: old=[0,0][1440,2960] new=[0,0][1440,2960] result=0x7 surface={valid=true 480479002624} changed=true
D/OpenGLRenderer: eglCreateWindowSurface = 0x6fdfef7280, 0x6fdec7c010
D/ViewRootImpl#46f9f6b[LoginActivity]: MSG_RESIZED: frame=Rect(0, 0 - 1440, 2960) ci=Rect(0, 96 - 0, 192) vi=Rect(0, 96 - 0, 192) or=1
D/ViewRootImpl#46f9f6b[LoginActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
D/InputMethodManager: prepareNavigationBarInfo() DecorView#aa5b516[LoginActivity]
D/InputMethodManager: getNavigationBarColor() -855310
D/InputMethodManager: prepareNavigationBarInfo() DecorView#aa5b516[LoginActivity]
D/InputMethodManager: getNavigationBarColor() -855310
D/InputMethodManager: startInputInner - Id : 0
I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport: Input channel constructed: fd=89
D/InputTransport: Input channel destroyed: fd=97
D/FA: Connected to remote service
D/InputTransport: Input channel constructed: fd=92
D/ViewRootImpl#346cbca[Toast]: setView = android.widget.LinearLayout{75c95b1 V.E...... ......I. 0,0-0,0} TM=true MM=false
D/ViewRootImpl#346cbca[Toast]: dispatchAttachedToWindow
D/ViewRootImpl#346cbca[Toast]: Relayout returned: old=[0,96][1440,2768] new=[115,2282][1324,2512] result=0x7 surface={valid=true 480480571392} changed=true
D/OpenGLRenderer: eglCreateWindowSurface = 0x6fdf199d80, 0x6fdedfb010
D/ViewRootImpl#346cbca[Toast]: MSG_RESIZED: frame=Rect(115, 2282 - 1324, 2512) ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0) or=1
D/OpenGLRenderer: eglDestroySurface = 0x6fdfff3d00, 0x6fdfd7c000
D/ViewRootImpl#b3aa7b8[SettingsActivity]: Relayout returned: old=[0,0][1440,2960] new=[0,0][1440,2960] result=0x5 surface={valid=false 0} changed=true
D/ViewRootImpl#b3aa7b8[SettingsActivity]: setWindowStopped(true) old=false
D/ViewRootImpl#b3aa7b8[SettingsActivity]: Surface release. android.view.WindowManagerGlobal.setStoppedState:669 android.app.Activity.performStop:7647 android.app.ActivityThread.callActivityOnStop:4379 android.app.ActivityThread.performStopActivityInner:4357 android.app.ActivityThread.handleStopActivity:4432 android.app.servertransaction.TransactionExecutor.performLifecycleSequence:192 android.app.servertransaction.TransactionExecutor.cycleToPath:165 android.app.servertransaction.TransactionExecutor.executeLifecycleState:142
D/ViewRootImpl#b3aa7b8[SettingsActivity]: dispatchDetachedFromWindow
D/ViewRootImpl#b3aa7b8[SettingsActivity]: Surface release. android.view.ViewRootImpl.doDie:7967 android.view.ViewRootImpl.die:7935 android.view.WindowManagerGlobal.removeViewLocked:497 android.view.WindowManagerGlobal.removeView:435 android.view.WindowManagerImpl.removeViewImmediate:124 android.app.ActivityThread.handleDestroyActivity:4753 android.app.servertransaction.DestroyActivityItem.execute:39 android.app.servertransaction.TransactionExecutor.executeLifecycleState:145
D/InputTransport: Input channel destroyed: fd=91
D/OpenGLRenderer: eglDestroySurface = 0x6fdf199d80, 0x6fdedfb000
D/ViewRootImpl#346cbca[Toast]: dispatchDetachedFromWindow
D/ViewRootImpl#346cbca[Toast]: Surface release. android.view.ViewRootImpl.doDie:7967 android.view.ViewRootImpl.die:7935 android.view.WindowManagerGlobal.removeViewLocked:497 android.view.WindowManagerGlobal.removeView:435 android.view.WindowManagerImpl.removeViewImmediate:124 android.widget.Toast$TN.handleHide:1110 android.widget.Toast$TN$1.handleMessage:898 android.os.Handler.dispatchMessage:106
D/InputTransport: Input channel destroyed: fd=92
It sounds like you have a listener to one of the Firebase databases (either Realtime Database or Cloud Firestore), and this listener requires that the user is authenticated. When you sign the user out, the listener becomes invalid, and gets cancelled by Firebase with the error message you see.
The solution is to remove the listener before signing the user out.
I am trying to implement sharing mechanism, but getting crash (unfortunately there is nothing in the logs...). I am using emulator Pixel 2 API 27, but also getting crash on real device LG G7.
Here is the code which I am using:
val bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.myDrawable)
val file = File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), "test_${System.currentTimeMillis()}.jpg")
val out = FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out)
out.close()
val uri = Uri.fromFile(file)
val shareIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_STREAM, uri)
type = "image/jpeg"
}
activity.startActivity(shareIntent)
When i debug I am just getting crash after invoking:
activity.startActivity(shareIntent)
How to resolve this issue and do it properly?
Logcat below, maybe will help investigation:
2020-04-08 17:58:50.339 2966-2966/? W/MainApplication: onReceive intent : Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) }
2020-04-08 17:58:50.340 2360-2360/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.BATTERY_CHANGED
2020-04-08 17:58:50.340 2360-2360/? D/KeyguardUpdateMonitor: Intent.ACTION_BATTERY_CHANGED status : 5 ,plugged : 22 ,charging : false ,level : 100 ,temperature : 254, temperatureState : 0, EXTRA_CHARGING_CURRENT : 0 / EXTRA_HVDCP_TYPE : false
2020-04-08 17:58:50.340 2360-2360/? D/KeyguardUpdateMonitor: handleBatteryUpdate
2020-04-08 17:58:50.344 2844-2844/? D/TeleService: PhoneGlobalsEx: onReceive: android.intent.action.BATTERY_CHANGED
2020-04-08 17:58:50.344 2360-2584/? I/AbsQuickSettingsHandlerBase: Got action android.intent.action.BATTERY_CHANGED for battery
2020-04-08 17:58:50.345 1838-3966/? V/LocSvc_HIDL_Subscription_jni: battery_level_update
2020-04-08 17:58:50.345 1838-3966/? V/LocSvc_HIDL_Subscription_jni: [battery_level_update][896] [HC] =>> [HS]
2020-04-08 17:58:50.345 2360-2360/? I/LGPowerUI: onReceive = android.intent.action.BATTERY_CHANGED
2020-04-08 17:58:50.345 1374-1374/? V/LocSvc_HIDL_IzatSubscription: [batteryLevelUpdate][757] [HS] <<<<= [HC]
2020-04-08 17:58:50.346 2360-2360/? I/LGPowerUI: level = 100, plugType = 2, plugged = true, charging = false, temperature = 254, chargingCurrent = 0, factoryCableItem = 0, isFastCharging = false, batteryID = 1
2020-04-08 17:58:50.346 2360-2360/? I/LowBatteryModeManager: applyCmrMode() enabled: false batteryLevel: 100
2020-04-08 17:58:50.346 1838-3966/? V/LocSvc_HIDL_Subscription_jni: Exit Result 0
--------- beginning of system
2020-04-08 17:58:50.346 1838-6745/? I/DisplayPowerControllerEx: requested BacklightDimming target[-1]
2020-04-08 17:58:50.346 2360-2360/? I/LowBatteryModeManager: setCmrMode(false)
2020-04-08 17:58:50.354 1838-2238/? D/WifiController: battery changed pluggedType: 2
2020-04-08 17:58:50.378 835-965/? W/HWComposer: Ignoring duplicate VSYNC event from HWC (t=24724858800000)
2020-04-08 17:58:50.397 835-965/? W/HWComposer: Ignoring duplicate VSYNC event from HWC (t=24724875507000)
2020-04-08 17:58:50.417 2117-2126/? E/nightwatch-watcher: Failed to read from logcat: Success
2020-04-08 17:58:50.824 809-4637/? D/sensors_hal_accel: handle_sns_std_sensor_event:89, accel_sample: ts=24725270340672 ns; value = [0.026188, 8.079635, 5.679935]
2020-04-08 17:58:50.916 1838-2309/? D/WifiWatchdogStateMachine: EVENT_CHECK_IMS_CALL_STATE received
2020-04-08 17:58:50.917 1838-2309/? D/WifiWatchdogStateMachine: OnlineWatchState handleRssiChange() imscallstate : 0
2020-04-08 17:58:50.922 1664-1664/? E/MSM-irqbalance: IRQ 82 not found in internal structure or should be ignored
2020-04-08 17:58:51.422 2117-2126/? E/nightwatch-watcher: Failed to read from logcat: Success
2020-04-08 17:58:51.735 809-4637/? D/sensors_hal_accel: handle_sns_std_sensor_event:89, accel_sample: ts=24726203678380 ns; value = [0.027787, 8.078243, 5.671582]
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: pfd[1].fd: 7 has data to process
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: cnss_gw_update_loop: received bytes: 76
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: cnss_gw_update_loop: nlmsg_type: 28
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: RTM_NEWNEIGH message received: 28
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: neighbor response rcvd for ipv4 neighbor
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: ndm_state: 4
2020-04-08 17:58:51.762 1375-1375/? D/cnss-daemon: Stale or unreachable neighbors,ndm state: 4
2020-04-08 17:58:51.809 1838-1849/? W/ActivityManager: Force finishing activity com.test.activity.MyActivity
2020-04-08 17:58:51.821 1838-1870/? W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver
2020-04-08 17:58:51.821 3652-6878/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:951 android.content.ContextWrapper.sendBroadcast:431 com.lge.mlt.providers.LDBSmartCareTrigger.sendMsgSmartCare:33 com.lge.mlt.providers.LDBMainLogProvider.insert:273 android.content.ContentProvider$Transport.insert:268
2020-04-08 17:58:51.821 1838-1870/? W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver
2020-04-08 17:58:51.823 1838-3632/? W/ActivityManager: Sending non-protected broadcast com.lge.mlt.action.smartcare.event from system 3652:com.lge.mlt/1000 pkg com.lge.mlt
2020-04-08 17:58:51.823 1838-1871/? D/PhoneWindow: windowLightStatusBar : false, disable View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
2020-04-08 17:58:51.825 2355-2517/? D/ViewRootImpl: onChangedNavigationGuardColor(), color: ffffffff
2020-04-08 17:58:51.828 2627-2627/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1461 android.content.ContextWrapper.startService:644 android.content.ContextWrapper.startService:644 com.lge.ia.intenttask.LIAIntentReceiver.sendIntent:95 com.lge.ia.intenttask.LIAIntentReceiver.onReceive:58
2020-04-08 17:58:51.842 2355-2355/? D/DecorView: updateNavigationGuardColor navigationGuardColor=0xffffffff
2020-04-08 17:58:51.844 2627-5716/? I/LIA_SDK_V0.8.35_LogCore: LIA Log Open() - prefix : LIA_SDK_V0.8.35_
2020-04-08 17:58:51.846 2627-5716/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1461 android.content.ContextWrapper.startService:644 com.lge.ia.connection.ConnectionProxy.tryStartService:59 com.lge.ia.ConnectionProxyHandler.tryConnecting:179 com.lge.ia.LGIntelligentAgent.tryConnecting:209
2020-04-08 17:58:51.847 835-965/? W/HWComposer: Ignoring duplicate VSYNC event from HWC (t=24726328331000)
2020-04-08 17:58:51.853 1838-1871/? D/InputDispatcher: Focus left window: Window{17c5a34 u0 com.test.activit.MyActivity}
2020-04-08 17:58:51.853 1838-1871/? D/InputDispatcher: Focus entered window: Window{5d9148c u0 Application Error: com.test.debug}
2020-04-08 17:58:51.854 1348-1464/? I/PowerRM: System FW:0 IC:0 SO:0 GT:0 CAPP:-1 APP:0
2020-04-08 17:58:51.854 1838-1871/? D/BezellessGripSuppressionFilter: getdisplaysize, x : 1440 y : 3120
2020-04-08 17:58:51.855 1348-1464/? E/PowerRM: found 42, mode set to 0
2020-04-08 17:58:51.855 1838-1871/? I/ActivityManager: Showing crash dialog for package com.test.debug u0
2020-04-08 17:58:51.855 1348-1464/? I/PowerRM: System FW:1 IC:0 SO:0 GT:0 CAPP:-1 APP:0
2020-04-08 17:58:51.855 2627-5716/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1541 android.content.ContextWrapper.bindService:678 com.lge.ia.connection.ConnectionProxy.tryBindService:80 com.lge.ia.ConnectionProxyHandler.tryConnecting:188 com.lge.ia.LGIntelligentAgent.tryConnecting:209
2020-04-08 17:58:51.855 1348-1464/? E/PowerRM: found 42, mode set to 0
2020-04-08 17:58:51.855 1348-1464/? I/PowerRM: FIA lock1 locked
2020-04-08 17:58:51.873 1838-3881/? I/Adreno: QUALCOMM build : 819682a, Idd487cf99a
Build Date : 09/05/18
OpenGL ES Shader Compiler Version: EV031.23.00.04
Local Branch :
Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.6.3.C2.08.00.00.435.090
Remote Branch : NONE
Reconstruct Branch : NOTHING
2020-04-08 17:58:51.875 2360-2360/? I/NavigationThemeResource: notify navigation bar color(0x0)
2020-04-08 17:58:51.875 2360-2360/? I/NavigationThemeResource: NavigationKey Color is changed(BLACK -> WHITE_WITH_BORDER)
BarMode=4, Theme=WHITE, LightBackground=false (Transparent)
, Keyguard show=false, IME shown=false, Bar vertical=false, Panel expanded=false
2020-04-08 17:58:51.876 2355-2517/? D/ViewRootImpl: onChangedNavigationGuardColor(), color: ffffffff
2020-04-08 17:58:51.876 2355-2355/? D/DecorView: updateNavigationGuardColor navigationGuardColor=0xffffffff
2020-04-08 17:58:51.878 1838-3881/? I/Adreno: PFP: 0x016ee155, ME: 0x00000000
2020-04-08 17:58:51.878 2360-2360/? D/StatusBar: setSystemUiVisibility vis=8008 mask=ffffffff oldVal=a608 newVal=8008 diff=2600
2020-04-08 17:58:51.878 1838-3881/? I/Adreno: PFP: 0x016ee155, ME: 0x00000000
2020-04-08 17:58:51.888 1838-3881/? I/OpenGLRenderer: Initialized EGL, version 1.4
2020-04-08 17:58:51.888 1838-3881/? D/OpenGLRenderer: Swap behavior 2
2020-04-08 17:58:51.919 2360-2972/? I/SystemServicesProxy: RecentApps has 2 item(s).
2020-04-08 17:58:51.923 1838-3632/? V/LGSettingsProvider: call_put(secure:overview_last_stack_active_time=1586361483972) calling package = com.android.systemui callingUserId : 0
2020-04-08 17:58:51.925 2627-2627/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.stopService:1473 android.content.ContextWrapper.stopService:654 com.lge.ia.manager.remote.LIARemoteManager.onAllSessionFinished:89 com.lge.ia.manager.session.LocalSessionManager.onTaskSessionFinished:116 com.lge.ia.manager.session.TaskContext.onAppSessionFinished:121
2020-04-08 17:58:51.929 2627-2627/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.stopService:1473 android.content.ContextWrapper.stopService:654 com.lge.ia.connection.ConnectionProxy.tryStopService:167 com.lge.ia.ConnectionProxyHandler.close:157 com.lge.ia.LIAServiceBase.finish:383
2020-04-08 17:58:51.930 2627-2627/? I/LIA_SDK_V0.8.35_LogCore: LIA Log Close() - prefix : LIA_SDK_V0.8.35_
2020-04-08 17:58:51.931 2627-2627/? I/LIA_LogCore: LIA Log Close() - set context to null!!
2020-04-08 17:58:52.085 1838-2143/? I/WindowManager: Window{5d9148c u0 Application Error: com.test.debug} start dimming: flags=1820002 effectFlags=0, layer=111000
2020-04-08 17:58:52.124 2360-2360/? D/StatusBar: setSystemUiVisibility vis=8008 mask=ffffffff oldVal=8008 newVal=8008 diff=0
2020-04-08 17:58:52.126 5420-5467/com.test.debug W/FirebaseRemoteConfig: No value of type 'FirebaseRemoteConfigValue' exists for parameter key 'fpr_session_max_duration_min'.
2020-04-08 17:58:52.152 2844-2844/? D/TeleService: PhoneInterfaceManager: [PhoneIntfMgr] mSigLevel = 2
2020-04-08 17:58:52.154 2360-2584/? I/MobileSignalController: isRoaming = false
2020-04-08 17:58:52.154 2360-2584/? I/NetworkController: onReceive: intent=Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }
2020-04-08 17:58:52.160 2360-2584/? I/MobileSignalController: isRoaming = false
2020-04-08 17:58:52.204 5420-5444/com.test.debug I/zygote64: Compiler allocated 4MB to compile void com.google.android.gms.internal.firebase-perf.zzgp.zza(java.lang.Object, com.google.android.gms.internal.firebase-perf.zzin)
2020-04-08 17:58:52.312 1838-1870/? W/ActivityManager: Activity pause timeout for ActivityRecord{1d7339c u0 com.test.activity.MyActivity t706 f}
2020-04-08 17:58:52.327 2795-3894/? D/LGImageQualityEnhancementService: handleCallbackActivity(), isEnhanced: false
2020-04-08 17:58:52.330 1348-1464/? I/PowerRM: System FW:1 IC:0 SO:0 GT:0 CAPP:-1 APP:0
2020-04-08 17:58:52.331 1348-1464/? E/PowerRM: found 42, mode set to 0
2020-04-08 17:58:52.354 2795-11577/? D/RoundCornerMask: ActivityTrigger mIsForceNotchMode : false , mIsSpecialMode : false
2020-04-08 17:58:52.356 2795-2795/? D/RoundCornerMask: mHandlerLand PORTRAIT 1
2020-04-08 17:58:52.423 2117-2126/? E/nightwatch-watcher: Failed to read from logcat: Success
2020-04-08 17:58:52.447 2360-2972/? I/SystemServicesProxy: RecentApps has 2 item(s).
2020-04-08 17:58:52.454 1838-3632/? V/LGSettingsProvider: call_put(secure:overview_last_stack_active_time=1586361483972) calling package = com.android.systemui callingUserId : 0
2020-04-08 17:58:52.556 2795-2795/? D/RoundCornerMask: mHandlerChangeResource::mIsStatusBarVisible : true , updateViewLayout:msg.what : 1
2020-04-08 17:58:52.688 809-4637/? D/sensors_hal_accel: handle_sns_std_sensor_event:89, accel_sample: ts=24727137016088 ns; value = [0.029731, 8.083754, 5.668999]
2020-04-08 17:58:53.423 2117-2126/? E/nightwatch-watcher: Failed to read from logcat: Success
2020-04-08 17:58:53.602 809-4637/? D/sensors_hal_accel: handle_sns_std_sensor_event:89, accel_sample: ts=24728070353797 ns; value = [0.034026, 8.070654, 5.685887]
2020-04-08 17:58:54.125 5420-5467/com.test.debug W/FirebaseRemoteConfig: No value of type 'FirebaseRemoteConfigValue' exists for parameter key 'fpr_session_max_duration_min'.
2020-04-08 17:58:54.426 2117-2126/? E/nightwatch-watcher: Failed to read from logcat: Success
2020-04-08 17:58:54.555 809-4637/? D/sensors_hal_accel: handle_sns_std_sensor_event:89, accel_sample: ts=24729003691505 ns; value = [0.031276, 8.080209, 5.671291]
2020-04-08 17:58:55.427 2117-2126/? E/nightwatch-watcher: Failed to read from logcat: Success
2020-04-08 17:58:55.469 809-4637/? D/sensors_hal_accel: handle_sns_std_sensor_event:89, accel_sample: ts=24729937029213 ns; value = [0.027177, 8.078901, 5.672119]
i am using firebase database and wanted to match a value (the schoolcode) of the user being added to contacts with current users value ( schoolcode) and when i added the code user1.getSchoolCode it started crashing any ideas?
if i pass just a simple string like if (user.getSchoolcode().equals("001")) {
users.add(user);
} it works but user1.getSchoolCode dont work
RecyclerView recyclerView;
UserAdapter userAdapter;
List<User> users;
FirebaseUser firebaseUser;
DatabaseReference reference;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contacts_parent);
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
users = new ArrayList<>();
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("teacher");
readUsers();
}
private void readUsers() {
reference.addValueEventListener(new ValueEventListener() {
#Override
public void onDataChange(#NonNull DataSnapshot dataSnapshot) {
users.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
DataSnapshot snapshot1 = dataSnapshot.child(firebaseUser.getUid());
User user = snapshot.getValue(User.class);
User user1 = snapshot1.getValue(User.class);
assert user != null;
if (user.getSchoolcode().equals(user1.getSchoolcode())) {
users.add(user);
}
}
userAdapter= new UserAdapter(getApplicationContext(), users);
recyclerView.setAdapter(userAdapter);
}
#Override
public void onCancelled(#NonNull DatabaseError databaseError) {
}
});
}
}
thanks in advance
this is the logcat
2020-04-15 16:01:44.851 15021-15021/net.gobz.gobz D/AndroidRuntime: Shutting down VM
2020-04-15 16:01:44.852 15021-15021/net.gobz.gobz E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.gobz.gobz, PID: 15021
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String net.gobz.gobz.Model.User.getSchoolcode()' on a null object reference
at net.gobz.gobz.parent.ContactsParentActivity$1.onDataChange(ContactsParentActivity.java:69)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database##19.2.1:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database##19.2.1:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database##19.2.1:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7099)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
2020-04-15 16:01:44.864 15021-15021/net.gobz.gobz I/Process: Sending signal. PID: 15021 SIG: 9
i dont know if you need this too
2020-04-15 15:55:56.298 15021-15021/? E/Zygote: isWhitelistProcess - Process is Whitelisted
2020-04-15 15:55:56.298 15021-15021/? E/Zygote: accessInfo : 1
2020-04-15 15:55:56.304 15021-15021/? I/net.gobz.gobz: Late-enabling -Xcheck:jni
2020-04-15 15:55:56.336 15021-15021/? I/net.gobz.gobz: report jit thread pid = 15027
2020-04-15 15:55:56.966 15021-15021/net.gobz.gobz I/MultiDex: VM with version 2.1.0 has multidex support
2020-04-15 15:55:56.967 15021-15021/net.gobz.gobz I/MultiDex: Installing application
2020-04-15 15:55:56.967 15021-15021/net.gobz.gobz I/MultiDex: VM has multidex support, MultiDex support library is disabled.
2020-04-15 15:55:57.011 15021-15057/net.gobz.gobz W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-04-15 15:55:57.029 15021-15021/net.gobz.gobz D/FirebaseAuth: Notifying id token listeners about user ( RvM1ycqh35Vxzi4M8NzHGaFERMp1 ).
2020-04-15 15:55:57.034 15021-15021/net.gobz.gobz I/FirebaseInitProvider: FirebaseApp initialization successful
2020-04-15 15:55:57.042 15021-15059/net.gobz.gobz W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-04-15 15:55:57.051 15021-15059/net.gobz.gobz I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
2020-04-15 15:55:57.114 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden method Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets; (light greylist, linking)
2020-04-15 15:55:57.114 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking)
2020-04-15 15:55:57.114 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking)
2020-04-15 15:55:57.114 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking)
2020-04-15 15:55:57.114 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking)
2020-04-15 15:55:57.141 15021-15021/net.gobz.gobz W/Glide: Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a #GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
2020-04-15 15:55:57.193 15021-15021/net.gobz.gobz I/DecorView: createDecorCaptionView >> DecorView#a917524[], isFloating: false, isApplication: true, hasWindowDecorCaption: false, hasWindowControllerCallback: true
2020-04-15 15:55:57.228 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2020-04-15 15:55:57.229 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2020-04-15 15:55:57.295 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden method Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; (light greylist, linking)
2020-04-15 15:55:57.339 15021-15021/net.gobz.gobz W/net.gobz.gobz: Accessing hidden field Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate; (light greylist, reflection)
2020-04-15 15:55:57.572 15021-15021/net.gobz.gobz D/OpenGLRenderer: Skia GL Pipeline
2020-04-15 15:55:57.578 15021-15021/net.gobz.gobz D/EmergencyMode: [EmergencyManager] android createPackageContext successful
2020-04-15 15:55:57.641 15021-15021/net.gobz.gobz D/InputTransport: Input channel constructed: fd=64
2020-04-15 15:55:57.642 15021-15021/net.gobz.gobz D/ViewRootImpl#98b94c[MainParentActivity]: setView = DecorView#a917524[MainParentActivity] TM=true MM=false
2020-04-15 15:55:57.670 15021-15066/net.gobz.gobz D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2020-04-15 15:55:57.676 15021-15066/net.gobz.gobz D/NetworkManagementSocketTagger: tagSocket(62) with statsTag=0xffffffff, statsUid=-1
2020-04-15 15:55:57.734 15021-15021/net.gobz.gobz D/ViewRootImpl#98b94c[MainParentActivity]: Relayout returned: old=[0,0][1080,2340] new=[0,0][1080,2340] result=0x7 surface={true 537833799680} changed=true
2020-04-15 15:55:57.751 15021-15065/net.gobz.gobz I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2020-04-15 15:55:57.752 15021-15065/net.gobz.gobz I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
2020-04-15 15:55:57.752 15021-15065/net.gobz.gobz I/OpenGLRenderer: Initialized EGL, version 1.4
2020-04-15 15:55:57.752 15021-15065/net.gobz.gobz D/OpenGLRenderer: Swap behavior 2
2020-04-15 15:55:57.766 15021-15065/net.gobz.gobz D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2020-04-15 15:55:57.766 15021-15065/net.gobz.gobz D/OpenGLRenderer: eglCreateWindowSurface = 0x7d3d346e00, 0x7d39648010
2020-04-15 15:55:57.832 15021-15021/net.gobz.gobz D/ViewRootImpl#98b94c[MainParentActivity]: Relayout returned: old=[0,0][1080,2340] new=[0,0][1080,2340] result=0x3 surface={true 537833799680} changed=false
2020-04-15 15:55:57.967 15021-15021/net.gobz.gobz D/ViewRootImpl#98b94c[MainParentActivity]: MSG_RESIZED: frame=[0,0][1080,2340] ci=[0,83][0,126] vi=[0,83][0,126] or=1
2020-04-15 15:55:57.968 15021-15021/net.gobz.gobz D/ViewRootImpl#98b94c[MainParentActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2020-04-15 15:55:57.968 15021-15021/net.gobz.gobz D/InputMethodManager: prepareNavigationBarInfo() DecorView#a917524[MainParentActivity]
2020-04-15 15:55:57.969 15021-15021/net.gobz.gobz D/InputMethodManager: getNavigationBarColor() -855310
2020-04-15 15:55:57.979 15021-15021/net.gobz.gobz D/InputMethodManager: prepareNavigationBarInfo() DecorView#a917524[MainParentActivity]
2020-04-15 15:55:57.979 15021-15021/net.gobz.gobz D/InputMethodManager: getNavigationBarColor() -855310
2020-04-15 15:55:57.979 15021-15021/net.gobz.gobz V/InputMethodManager: Starting input: tba=net.gobz.gobz ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2020-04-15 15:55:57.979 15021-15021/net.gobz.gobz D/InputMethodManager: startInputInner - Id : 0
2020-04-15 15:55:57.979 15021-15021/net.gobz.gobz I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2020-04-15 15:55:57.990 15021-15040/net.gobz.gobz D/InputTransport: Input channel constructed: fd=84
2020-04-15 15:55:57.990 15021-15021/net.gobz.gobz D/InputMethodManager: prepareNavigationBarInfo() DecorView#a917524[MainParentActivity]
2020-04-15 15:55:57.991 15021-15021/net.gobz.gobz D/InputMethodManager: getNavigationBarColor() -855310
2020-04-15 15:55:57.991 15021-15021/net.gobz.gobz V/InputMethodManager: Starting input: tba=net.gobz.gobz ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2020-04-15 15:55:57.991 15021-15021/net.gobz.gobz D/InputMethodManager: startInputInner - Id : 0
2020-04-15 15:56:00.294 15021-15021/net.gobz.gobz W/ClassMapper: No setter/field for studentname found on class net.gobz.gobz.Model.User
2020-04-15 15:56:00.295 15021-15021/net.gobz.gobz W/ClassMapper: No setter/field for grade found on class net.gobz.gobz.Model.User
2020-04-15 15:56:00.295 15021-15021/net.gobz.gobz W/ClassMapper: No setter/field for section found on class net.gobz.gobz.Model.User
2020-04-15 15:56:00.296 15021-15021/net.gobz.gobz W/ClassMapper: No setter/field for status found on class net.gobz.gobz.Model.User
here is a screenshot of my database
i have one more problem now when i touch the contact and open the messaging activity it is crashing again
this is my messages activity
CircleImageView imageView;
FirebaseUser firebaseUser;
DatabaseReference reference;
Intent intent;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_message);
final Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
finish();
}
});
imageView = findViewById(R.id.profile_image);
intent = getIntent();
String userid = intent.getStringExtra("userid");
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("parent").child(userid);
reference.addValueEventListener(new ValueEventListener() {
#Override
public void onDataChange(#NonNull DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if (user.getImageURL().equals("default")) {
imageView.setImageResource(R.drawable.ic_user);
}else {
Glide.with(MessageActivity.this).load(user.getImageURL()).into(imageView);
}
}
#Override
public void onCancelled(#NonNull DatabaseError databaseError) {
}
});
}
}
and this is the intent i was calling for
holder.itemView.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
Intent intent = new Intent(context, MessageActivity.class);
intent.putExtra("userid", user.getId());
context.startActivity(intent);
}
});
first get current user from Firebase
private void getCurrentUser(String userID) {
Log.("UserId==>",userID+"");//do check this value in teacher database
FirebaseDatabase.getInstance().getReference("parent").child(userID).addValueEventListener(new ValueEventListener() {
#Override
public void onDataChange(#NonNull DataSnapshot dataSnapshot) {
try{ if(dataSnapshot != null){ Log.e("UserVal==>", snapshot.getValue(JSONObject.class));
User user1 = snapshot.getValue(User.class);
readUsers(user1.getSchoolcode());}} catch (Exception e){e.printstacktrace(); Log.e("getusererror",e.getMessage());}
}
#Override
public void onCancelled(#NonNull DatabaseError databaseError) {
}
});
}
And update your readUsers method like this , you can also change parameter to pass User instead of schoolCode
private void readUsers(String schoolCode) {
reference.addValueEventListener(new ValueEventListener() {
#Override
public void onDataChange(#NonNull DataSnapshot dataSnapshot) {
try{ users.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
User user = snapshot.getValue(User.class);
assert user != null;
if (user.getSchoolcode().equals(schoolCode)) {
users.add(user);
}
}
userAdapter= new UserAdapter(getApplicationContext(), users);
recyclerView.setAdapter(userAdapter);} catch (Exception e){e.printstacktrace(); Log.e("readError",e.getMessage());}
}
#Override
public void onCancelled(#NonNull DatabaseError databaseError) {
}
});
}
first Call the getCurrentUser method
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("teacher");
getCurrentUser(firebaseUser.getUid());// readUsers()
I am fairly new to android/java. I am trying to incorporate the example code for ADAL into my app, but when I call mAuthContext.aquireToken(), login prompt does not appear and I see errors in logcat about no activity for token. Is my activity getting destroyed for some reason?
I've searched but I'm not finding others that have this same kind of problem. I have a feeling I modified some code that is causing this and I cannot find what it is. I have tried different ways of referencing the activity in the first param of mAuthContext.acquireToken() but I don't think that is the problem. Any help is MUCH appreciated!
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.drawable.kclogo);
getSupportActionBar().setDisplayUseLogoEnabled(true);
scanButton = (Button) findViewById(R.id.scanButton);
signOutButton = (Button) findViewById(R.id.signoutButton);
signOutButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onSignOutClicked();
}
});
scanButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onScanClicked();
}
});
mAuthContext = new AuthenticationContext(getApplicationContext(), AUTHORITY, false);
/* Instantiate handler which can invoke interactive sign-in to get the Resource
* sIntSignInInvoked ensures interactive sign-in is invoked one at a time */
mAcquireTokenHandler = new Handler(Looper.getMainLooper()) {
#Override
public void handleMessage(Message msg) {
if (sIntSignInInvoked.compareAndSet(false, true)) {
try {
if (msg.what == MSG_INTERACTIVE_SIGN_IN_PROMPT_AUTO) {
Log.i(TAG, "$$$ Launching - MSG_INTERACTIVE_SIGN_IN_PROMPT_AUTO");
mAuthContext.acquireToken(getActivity(), RESOURCE_ID, CLIENT_ID, REDIRECT_URI, PromptBehavior.Auto, getAuthInteractiveCallback());
} else if (msg.what == MSG_INTERACTIVE_SIGN_IN_PROMPT_ALWAYS) {
mAuthContext.acquireToken(getActivity(), RESOURCE_ID, CLIENT_ID, REDIRECT_URI, PromptBehavior.Always, getAuthInteractiveCallback());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
/* ADAL Logging callback setup */
Logger.getInstance().setExternalLogger(new Logger.ILogger() {
#Override
public void Log(String tag, String message, String additionalMessage, Logger.LogLevel level, ADALError errorCode) {
// You can filter the logs depending on level or errorcode.
Log.d(TAG, message + " " + additionalMessage);
}
});
/*Attempt an acquireTokenSilent call to see if we're signed in*/
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String userId = preferences.getString(USER_ID, "");
if(!TextUtils.isEmpty(userId)) {
Log.d(TAG,"Silent");
mAuthContext.acquireTokenSilentAsync(RESOURCE_ID, CLIENT_ID, userId, getAuthSilentCallback());
}
}
private void onScanClicked() {
mAcquireTokenHandler.sendEmptyMessage(MSG_INTERACTIVE_SIGN_IN_PROMPT_AUTO);
}
LOGCAT:
2018-12-19 14:07:06.702 15061-15061/com.solvednetworks.cptool I/MainActivity: $$$ Launching - MSG_INTERACTIVE_SIGN_IN_PROMPT_AUTO
2018-12-19 14:07:06.716 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Sending async task from thread:15061 ver:1.14.1 null
2018-12-19 14:07:06.724 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Running task in thread:15097 ver:1.14.1 null
2018-12-19 14:07:06.731 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Broker auth is turned off or no valid broker is available on the device, cannot switch to broker. ver:1.14.1 null
2018-12-19 14:07:06.736 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Try to acquire token silently, return valid AT or use RT in the cache. ver:1.14.1 null
2018-12-19 14:07:06.742 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Try to silently get token from local cache. ver:1.14.1 null
2018-12-19 14:07:06.759 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-No access token exists. ver:1.14.1 null
2018-12-19 14:07:06.764 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-No valid access token exists, try with refresh token. ver:1.14.1 null
2018-12-19 14:07:06.785 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Regular token cache entry does not exist, try with MRRT. ver:1.14.1 null
2018-12-19 14:07:06.800 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-MRRT token does not exist, try with FRT ver:1.14.1 null
2018-12-19 14:07:06.807 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-FRT cache item does not exist, fall back to try MRRT. ver:1.14.1 null
2018-12-19 14:07:06.811 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Send request to use MRRT for new AT. ver:1.14.1 null
2018-12-19 14:07:06.816 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-MRRT does not exist, cannot proceed with MRRT for new AT. ver:1.14.1 null
2018-12-19 14:07:06.822 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Broker auth is turned off or no valid broker is available on the device, cannot switch to broker. ver:1.14.1 null
2018-12-19 14:07:06.830 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Put waiting request. requestId:93475433 CorrelationId: 56b96149-f5c0-41d6-8195-baac64ea35a9 ver:1.14.1 null
2018-12-19 14:07:06.837 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Broker auth is turned off or no valid broker is available on the device, cannot switch to broker. ver:1.14.1 null
2018-12-19 14:07:06.843 15061-15097/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:06-56b96149-f5c0-41d6-8195-baac64ea35a9-Starting Authentication Activity for embedded flow. ver:1.14.1 null
2018-12-19 14:07:06.880 1918-2527/system_process I/ActivityManager: START u0 {cmp=com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity (has extras)} from uid 10092
2018-12-19 14:07:06.893 15061-15086/com.solvednetworks.cptool V/FA: Recording user engagement, ms: 1194
2018-12-19 14:07:06.901 15061-15061/com.solvednetworks.cptool W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy#ff0f877
2018-12-19 14:07:06.913 15061-15086/com.solvednetworks.cptool V/FA: Activity paused, time: 49751619
2018-12-19 14:07:06.926 15061-15061/com.solvednetworks.cptool V/FA: onActivityCreated
2018-12-19 14:07:06.939 15061-15086/com.solvednetworks.cptool D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=1194, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=2466986703034345432}]
2018-12-19 14:07:07.049 2743-15104/com.google.android.gms V/FA-SVC: Event recorded: Event{appId='com.solvednetworks.cptool', name='user_engagement(_e)', params=Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=1194, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=2466986703034345432}]}
2018-12-19 14:07:07.055 15061-15061/com.solvednetworks.cptool I/WebViewFactory: Loading com.android.chrome version 66.0.3359.158 (code 336015817)
2018-12-19 14:07:07.061 15061-15061/com.solvednetworks.cptool I/networks.cptoo: The ClassLoaderContext is a special shared library.
2018-12-19 14:07:07.100 15061-15061/com.solvednetworks.cptool I/cr_LibraryLoader: Time to load native libraries: 5 ms (timestamps 1821-1826)
2018-12-19 14:07:07.151 15061-15061/com.solvednetworks.cptool I/chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0
2018-12-19 14:07:07.152 15061-15061/com.solvednetworks.cptool I/cr_LibraryLoader: Expected native library version number "66.0.3359.158", actual native library version number "66.0.3359.158"
2018-12-19 14:07:07.187 15061-15110/com.solvednetworks.cptool W/cr_ChildProcLH: Create a new ChildConnectionAllocator with package name = com.android.chrome, sandboxed = true
2018-12-19 14:07:07.222 15061-15061/com.solvednetworks.cptool I/cr_BrowserStartup: Initializing chromium process, singleProcess=false
2018-12-19 14:07:07.224 1918-1946/system_process I/ActivityManager: Start proc 15112:com.android.chrome:sandboxed_process0/u0i12 for webview_service com.solvednetworks.cptool/org.chromium.content.app.SandboxedProcessService0
2018-12-19 14:07:07.225 15061-15061/com.solvednetworks.cptool I/cr_base: Android Locale: en_US requires .pak files: [en-GB.pak, en-US.pak]
2018-12-19 14:07:07.337 15061-15141/com.solvednetworks.cptool E/chromium: [ERROR:devtools_http_handler.cc(292)] Cannot start http server for devtools. Stop devtools.
2018-12-19 14:07:07.427 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->(Landroid/content/Context;I)V (light greylist, reflection)
2018-12-19 14:07:07.427 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V (light greylist, reflection)
2018-12-19 14:07:07.427 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionStarted(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
2018-12-19 14:07:07.428 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(II)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
2018-12-19 14:07:07.428 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
2018-12-19 14:07:07.428 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextSelection;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
2018-12-19 14:07:07.428 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
2018-12-19 14:07:07.428 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
2018-12-19 14:07:07.458 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9-AuthenticationActivity was created. ver:1.14.1 null
2018-12-19 14:07:07.515 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9-Init broadcastReceiver with request. RequestId:93475433 ver:1.14.1 null
2018-12-19 14:07:07.524 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9- ver:1.14.1 null
2018-12-19 14:07:07.530 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9-Non-broker request for package com.solvednetworks.cptool ver:1.14.1 null
2018-12-19 14:07:07.536 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9-Device info:9 GoogleAndroid SDK built for x86 ver:1.14.1 null
2018-12-19 14:07:07.561 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9-Correlation id for request sent is:56b96149-f5c0-41d6-8195-baac64ea35a9 ver:1.14.1 null
2018-12-19 14:07:07.618 15061-15086/com.solvednetworks.cptool D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=MainActivity, firebase_previous_id(_pi)=2466986703034345432, firebase_screen_class(_sc)=AuthenticationActivity, firebase_screen_id(_si)=2466986703034345433}]
2018-12-19 14:07:07.732 2743-15104/com.google.android.gms V/FA-SVC: Event recorded: Event{appId='com.solvednetworks.cptool', name='screen_view(_vs)', params=Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=MainActivity, firebase_previous_id(_pi)=2466986703034345432, firebase_screen_class(_sc)=AuthenticationActivity, firebase_screen_id(_si)=2466986703034345433}]}
2018-12-19 14:07:07.732 15061-15086/com.solvednetworks.cptool V/FA: Activity resumed, time: 49752310
2018-12-19 14:07:07.851 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:07-56b96149-f5c0-41d6-8195-baac64ea35a9-Launching webview for acquiring auth code. ver:1.14.1 null
2018-12-19 14:07:07.873 15061-15131/com.solvednetworks.cptool W/cr_media: Requires BLUETOOTH permission
2018-12-19 14:07:07.885 15061-15098/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xd2bcfa40: ver 3 0 (tinfo 0xd25ec380)
2018-12-19 14:07:07.929 15061-15150/com.solvednetworks.cptool D/EGL_emulation: eglCreateContext: 0xc92a7860: maj 3 min 0 rcv 3
2018-12-19 14:07:07.929 15061-15150/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xc92a7860: ver 3 0 (tinfo 0xc7d922e0)
2018-12-19 14:07:07.936 1918-1954/system_process I/ActivityManager: Displayed com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity: +1s23ms
2018-12-19 14:07:08.062 15061-15150/com.solvednetworks.cptool W/VideoCapabilities: Unrecognized profile 4 for video/hevc
2018-12-19 14:07:08.119 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-Webview starts loading. ver:1.14.1 null
2018-12-19 14:07:08.130 15061-15150/com.solvednetworks.cptool I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
2018-12-19 14:07:08.133 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-DisplaySpinner:true showing:false ver:1.14.1 null
2018-12-19 14:07:08.170 15061-15150/com.solvednetworks.cptool W/cr_MediaCodecUtil: HW encoder for video/avc is not available on this device.
2018-12-19 14:07:08.185 15061-15150/com.solvednetworks.cptool D/EGL_emulation: eglCreateContext: 0xeccc3160: maj 3 min 0 rcv 3
2018-12-19 14:07:08.185 15061-15150/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xeccc3160: ver 3 0 (tinfo 0xc7d922e0)
2018-12-19 14:07:08.504 1754-1754/? D/SurfaceFlinger: duplicate layer name: changing com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity to com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity#1
2018-12-19 14:07:08.597 15061-15098/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xd2bcfa40: ver 3 0 (tinfo 0xd25ec380)
2018-12-19 14:07:08.728 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-Navigation is detected ver:1.14.1 null
2018-12-19 14:07:08.737 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-Navigation starts with the redirect uri. ver:1.14.1 null
2018-12-19 14:07:08.752 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-It is not a broker request ver:1.14.1 null
2018-12-19 14:07:08.759 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-Return To Caller:2003 ver:1.14.1 null
2018-12-19 14:07:08.767 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-DisplaySpinner:false showing:true ver:1.14.1 null
2018-12-19 14:07:08.781 15061-15098/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xd2bcfa40: ver 3 0 (tinfo 0xd25ec380)
2018-12-19 14:07:08.792 1754-1754/? D/SurfaceFlinger: duplicate layer name: changing Surface(name=cf5a7cb com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity)/#0x60bde66 - animation-leash to Surface(name=cf5a7cb com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity)/#0x60bde66 - animation-leash#1
2018-12-19 14:07:08.802 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-Set request id related to response. REQUEST_ID for caller returned to:93475433 ver:1.14.1 null
2018-12-19 14:07:08.830 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-AuthenticationActivity onPause unregister receiver ver:1.14.1 null
2018-12-19 14:07:08.833 15061-15086/com.solvednetworks.cptool V/FA: Recording user engagement, ms: 1250
2018-12-19 14:07:08.835 15061-15061/com.solvednetworks.cptool D/MainActivity: 2018-12-19 21:07:08-56b96149-f5c0-41d6-8195-baac64ea35a9-Spinner at onPause will dismiss ver:1.14.1 null
2018-12-19 14:07:08.844 15061-15086/com.solvednetworks.cptool V/FA: Activity paused, time: 49753559
2018-12-19 14:07:08.875 15061-15086/com.solvednetworks.cptool D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=1250, firebase_screen_class(_sc)=AuthenticationActivity, firebase_screen_id(_si)=2466986703034345433}]
2018-12-19 14:07:08.974 15061-15061/com.solvednetworks.cptool W/networks.cptoo: Attempt to remove non-JNI local reference, dumping thread
2018-12-19 14:07:08.987 1754-1940/? W/SurfaceFlinger: Attempting to set client state on removed layer: com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity#1
2018-12-19 14:07:08.987 1754-1940/? W/SurfaceFlinger: Attempting to destroy on removed layer: com.solvednetworks.cptool/com.microsoft.aad.adal.AuthenticationActivity#1
2018-12-19 14:07:08.987 2743-15104/com.google.android.gms V/FA-SVC: Event recorded: Event{appId='com.solvednetworks.cptool', name='user_engagement(_e)', params=Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=1250, firebase_screen_class(_sc)=AuthenticationActivity, firebase_screen_id(_si)=2466986703034345433}]}
2018-12-19 14:07:08.989 15061-15098/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xd2bcfa40: ver 3 0 (tinfo 0xd25ec380)
2018-12-19 14:07:09.032 15061-15086/com.solvednetworks.cptool D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=AuthenticationActivity, firebase_previous_id(_pi)=2466986703034345433, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=2466986703034345432}]
2018-12-19 14:07:09.123 15061-15086/com.solvednetworks.cptool V/FA: Activity resumed, time: 49753582
2018-12-19 14:07:09.128 2743-15104/com.google.android.gms V/FA-SVC: Event recorded: Event{appId='com.solvednetworks.cptool', name='screen_view(_vs)', params=Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=AuthenticationActivity, firebase_previous_id(_pi)=2466986703034345433, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=2466986703034345432}]}
2018-12-19 14:07:09.150 15061-15098/com.solvednetworks.cptool D/EGL_emulation: eglMakeCurrent: 0xd2bcfa40: ver 3 0 (tinfo 0xd25ec380)
2018-12-19 14:07:14.126 15061-15086/com.solvednetworks.cptool V/FA: Inactivity, disconnecting from the service
I am playing a video in a window on titanium. I am noticing the console is outputting quite a bit of text. Several lines every second. Here is what I am seeing:
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 97 (msec)
[DEBUG] : ProgressBar: setProgress = 0
[DEBUG] : ProgressBar: setProgress = 0, fromUser = false
[DEBUG] : ProgressBar: mProgress = 0mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: message received msg=5, ext1=448, ext2=252
[TRACE] : MediaPlayer: New video size 448 x 252
[TRACE] : MediaPlayer: callback application
[TRACE] : MediaPlayer: back from callback
[TRACE] : MediaPlayer: getVideoWidth
[TRACE] : MediaPlayer: message received msg=200, ext1=3, ext2=0
[WARN] : MediaPlayer: info/warning (3, 0)
[TRACE] : MediaPlayer: callback application
[TRACE] : MediaPlayer: back from callback
[TRACE] : V/MediaPlayer-JNI: getVideoWidth: 448
[TRACE] : MediaPlayer: getVideoHeight
[TRACE] : V/MediaPlayer-JNI: getVideoHeight: 252
[WARN] : MediaPlayer: this is IMEDIA_PLAYER_VIDEO_EXIST
[INFO] : MediaPlayer: sendBroadcast android.media.IMediaPlayer.videoexist
[INFO] : MediaPlayer: Info (3,0)
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 588 (msec)
[DEBUG] : ProgressBar: setProgress = 3
[DEBUG] : ProgressBar: setProgress = 3, fromUser = false
[DEBUG] : ProgressBar: mProgress = 0mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: message received msg=3, ext1=0, ext2=0
[TRACE] : MediaPlayer: buffering 0
[TRACE] : MediaPlayer: callback application
[TRACE] : MediaPlayer: back from callback
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 1140 (msec)
[DEBUG] : ProgressBar: setProgress = 7
[DEBUG] : ProgressBar: setProgress = 7, fromUser = false
[DEBUG] : ProgressBar: mProgress = 3mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 1547 (msec)
[DEBUG] : ProgressBar: setProgress = 9
[DEBUG] : ProgressBar: setProgress = 9, fromUser = false
[DEBUG] : ProgressBar: mProgress = 7mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: message received msg=3, ext1=11, ext2=0
[TRACE] : MediaPlayer: buffering 11
[TRACE] : MediaPlayer: callback application
[TRACE] : MediaPlayer: back from callback
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 2107 (msec)
[DEBUG] : ProgressBar: setProgress = 13
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[DEBUG] : ProgressBar: setProgress = 13, fromUser = false
[DEBUG] : ProgressBar: mProgress = 9mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 2657 (msec)
[DEBUG] : ProgressBar: setProgress = 16
[DEBUG] : ProgressBar: setProgress = 16, fromUser = false
[DEBUG] : ProgressBar: mProgress = 13mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: message received msg=3, ext1=11, ext2=0
[TRACE] : MediaPlayer: buffering 11
[TRACE] : MediaPlayer: callback application
[TRACE] : MediaPlayer: back from callback
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 3075 (msec)
[DEBUG] : ProgressBar: setProgress = 19
[DEBUG] : ProgressBar: setProgress = 19, fromUser = false
[DEBUG] : ProgressBar: mProgress = 16mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 3627 (msec)
[DEBUG] : ProgressBar: setProgress = 22
[DEBUG] : ProgressBar: setProgress = 22, fromUser = false
[DEBUG] : ProgressBar: mProgress = 19mIndeterminate = false, mMin = 0, mMax = 10000
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : MediaPlayer: message received msg=3, ext1=21, ext2=0
[TRACE] : MediaPlayer: buffering 21
[TRACE] : MediaPlayer: callback application
[TRACE] : MediaPlayer: back from callback
[TRACE] : MediaPlayer: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: isPlaying: 1
[TRACE] : V/MediaPlayer-JNI: getCurrentPosition: 4160 (msec)
[DEBUG] : ProgressBar: setProgress = 25
[DEBUG] : ProgressBar: setProgress = 25, fromUser = false
[DEBUG] : ProgressBar: mProgress = 22mIndeterminate = false, mMin = 0, mMax = 10000
It's all that over and over and over again. My app never did this before. I recently upgrade to Ti SDK 3.2.1 and Ti Studio: 3.2.1.201402041146
Can anyone explain this?