Skip to content

Conversation

@amk-stripe
Copy link
Collaborator

Summary

Log correct experiment assignments for horizontal mode experiments

Motivation

Currently experiment assignments for both A/A tests are logged as being for the Android-only A/A test. Updated the LoggableExperiment to take a param indicating which experiment we are logging an exposure for.

Testing

  • Added tests
  • Modified tests
  • Manually verified

Added network tests

@github-actions
Copy link
Contributor

github-actions bot commented Jan 13, 2026

Diffuse output:

OLD: paymentsheet-example-release-master.apk (signature: V1, V2)
NEW: paymentsheet-example-release-pr.apk (signature: V1, V2)

          │             compressed             │         uncompressed          
          ├─────────────┬─────────────┬────────┼───────────┬───────────┬───────
 APK      │ old         │ new         │ diff   │ old       │ new       │ diff  
──────────┼─────────────┼─────────────┼────────┼───────────┼───────────┼───────
      dex │     4.9 MiB │     4.9 MiB │ +261 B │    11 MiB │    11 MiB │ -24 B 
     arsc │     3.6 MiB │     3.6 MiB │    0 B │   3.6 MiB │   3.6 MiB │   0 B 
 manifest │     5.7 KiB │     5.7 KiB │    0 B │  30.2 KiB │  30.2 KiB │   0 B 
      res │ 1,005.4 KiB │ 1,005.4 KiB │    0 B │   1.7 MiB │   1.7 MiB │   0 B 
   native │   949.9 KiB │   949.9 KiB │    0 B │   2.5 MiB │   2.5 MiB │   0 B 
    asset │    26.2 KiB │    26.2 KiB │   -5 B │  46.7 KiB │  46.7 KiB │  -5 B 
    other │   205.4 KiB │   205.4 KiB │  -16 B │ 405.7 KiB │ 405.7 KiB │   0 B 
──────────┼─────────────┼─────────────┼────────┼───────────┼───────────┼───────
    total │    10.6 MiB │    10.6 MiB │ +240 B │  19.2 MiB │  19.2 MiB │ -29 B 

         │         raw          │            unique            
         ├───────┬───────┬──────┼───────┬───────┬──────────────
 DEX     │ old   │ new   │ diff │ old   │ new   │ diff         
─────────┼───────┼───────┼──────┼───────┼───────┼──────────────
   files │     2 │     2 │    0 │       │       │              
 strings │ 58655 │ 58656 │   +1 │ 52178 │ 52179 │ +1 (+3 -2)   
   types │ 20672 │ 20673 │   +1 │ 17456 │ 17457 │ +1 (+1 -0)   
 classes │ 14687 │ 14688 │   +1 │ 14687 │ 14688 │ +1 (+1 -0)   
 methods │ 78281 │ 78279 │   -2 │ 73310 │ 73308 │ -2 (+18 -20) 
  fields │ 51309 │ 51312 │   +3 │ 48972 │ 48975 │ +3 (+35 -32) 

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  325 │  325 │  0   
 entries │ 6948 │ 6948 │  0
APK
     compressed     │   uncompressed    │                                           
───────────┬────────┼───────────┬───────┤                                           
 size      │ diff   │ size      │ diff  │ path                                      
───────────┼────────┼───────────┼───────┼───────────────────────────────────────────
   4.1 MiB │ +254 B │   9.2 MiB │ -24 B │ ∆ classes.dex                             
  54.4 KiB │   -9 B │ 127.3 KiB │   0 B │ ∆ META-INF/MANIFEST.MF                    
 811.8 KiB │   +7 B │   1.8 MiB │   0 B │ ∆ classes2.dex                            
   9.9 KiB │   -5 B │   9.7 KiB │  -5 B │ ∆ assets/dexopt/baseline.prof             
  57.6 KiB │   -4 B │ 127.4 KiB │   0 B │ ∆ META-INF/CERT.SF                        
   1.2 KiB │   -2 B │   1.2 KiB │   0 B │ ∆ META-INF/CERT.RSA                       
     271 B │   -1 B │     120 B │   0 B │ ∆ META-INF/version-control-info.textproto 
───────────┼────────┼───────────┼───────┼───────────────────────────────────────────
     5 MiB │ +240 B │  11.2 MiB │ -29 B │ (total)
DEX
STRINGS:

   old   │ new   │ diff       
  ───────┼───────┼────────────
   52178 │ 52179 │ +1 (+3 -2) 
  
  + Lmi/g;
  + r8-map-id-6e2f7249c237025bca28d1085ec24714a67546e3147c6014f9340b7e55eadfe5
  + ~~R8{"backend":"dex","compilation-mode":"release","has-checksums":false,"min-api":21,"pg-map-id":"6e2f7249c237025bca28d1085ec24714a67546e3147c6014f9340b7e55eadfe5","r8-mode":"full","version":"8.13.17"}
  
  - r8-map-id-25ddb6c3e7fa08775f973e8246af7057e1c5624675f927e1ed9dd4cc6a2841db
  - ~~R8{"backend":"dex","compilation-mode":"release","has-checksums":false,"min-api":21,"pg-map-id":"25ddb6c3e7fa08775f973e8246af7057e1c5624675f927e1ed9dd4cc6a2841db","r8-mode":"full","version":"8.13.17"}
  

TYPES:

   old   │ new   │ diff       
  ───────┼───────┼────────────
   17456 │ 17457 │ +1 (+1 -0) 
  
  + Lmi/g;
  

METHODS:

   old   │ new   │ diff         
  ───────┼───────┼──────────────
   73310 │ 73308 │ -2 (+18 -20) 
  
  + c0.k2 <init>(g, k6, v, Function1, SharedPaymentTokenPlaygroundActivity, Continuation)
  + gc.h <init>(e3, String, String, Map)
  + mi.a <init>(a3, Context)
  + mi.b <init>(d, ContinuationImpl)
  + mi.c <init>(Object, Object, Continuation, int)
  + mi.c <init>(Object, Continuation, int)
  + mi.c create(Object, Continuation) → Continuation
  + mi.c invoke(Object, Object) → Object
  + mi.c invokeSuspend(Object) → Object
  + mi.d <init>(a3, Context)
  + mi.d a(ContinuationImpl) → Object
  + mi.e <init>(g, ContinuationImpl)
  + mi.f <init>(g, ContinuationImpl)
  + mi.f invokeSuspend(Object) → Object
  + mi.g <init>(a3, Context)
  + mi.g a(ContinuationImpl) → Object
  + mi.g b(k6, ContinuationImpl) → Serializable
  + oi.l <init>(Function1, c, g, v, SharedPaymentTokenPlaygroundActivity)
  
  - c0.k2 <init>(f, k6, v, Function1, SharedPaymentTokenPlaygroundActivity, Continuation)
  - gc.g <init>(f3, String, b0, boolean, EventReporter_Mode)
  - gc.g c() → String
  - gc.h <init>(a3, Context)
  - gc.h <init>(e3, String, Map)
  - mi.a <init>(c, ContinuationImpl)
  - mi.a invokeSuspend(Object) → Object
  - mi.b <init>(Object, Object, Continuation, int)
  - mi.b <init>(Object, Continuation, int)
  - mi.b create(Object, Continuation) → Continuation
  - mi.b invoke(Object, Object) → Object
  - mi.c <init>(a3, Context)
  - mi.c d(ContinuationImpl) → Object
  - mi.d <init>(f, ContinuationImpl)
  - mi.d invokeSuspend(Object) → Object
  - mi.e <init>(f, ContinuationImpl)
  - mi.f <init>(a3, Context)
  - mi.f a(ContinuationImpl) → Object
  - mi.f b(k6, ContinuationImpl) → Serializable
  - oi.l <init>(Function1, c, f, v, SharedPaymentTokenPlaygroundActivity)
  

FIELDS:

   old   │ new   │ diff         
  ───────┼───────┼──────────────
   48972 │ 48975 │ +3 (+35 -32) 
  
  + gc.f f: String
  + gc.f g: e3
  + gc.f i: boolean
  + gc.f j: d
  + gc.f k: e
  + gc.f l: boolean
  + gc.f m: String
  + gc.f n: boolean
  + gc.f q: String
  + gc.h a: e3
  + gc.h b: String
  + gc.h c: String
  + gc.h d: Map
  + mi.a a: a3
  + mi.a b: Context
  + mi.a c: d
  + mi.b k: d
  + mi.b l: l
  + mi.b n: d
  + mi.b o: int
  + mi.c k: int
  + mi.c l: Object
  + mi.c m: Object
  + mi.e k: g
  + mi.e l: y0
  + mi.e m: Object
  + mi.e n: g
  + mi.e o: int
  + mi.f k: Object
  + mi.f l: g
  + mi.f m: int
  + mi.g a: a3
  + mi.g b: Context
  + mi.g c: u
  + oi.l c: g
  
  - gc.f d: String
  - gc.f f: e3
  - gc.f g: boolean
  - gc.f i: d
  - gc.f j: e
  - gc.f k: boolean
  - gc.f l: String
  - gc.f m: boolean
  - gc.f n: String
  - gc.g d: String
  - gc.h a: Object
  - gc.h b: Object
  - gc.h c: Object
  - mi.a k: c
  - mi.a l: l
  - mi.a m: Object
  - mi.a n: c
  - mi.a o: int
  - mi.b k: int
  - mi.b l: Object
  - mi.d k: f
  - mi.d l: y0
  - mi.d m: Object
  - mi.d n: f
  - mi.d o: int
  - mi.e k: Object
  - mi.e l: f
  - mi.e m: int
  - mi.f a: a3
  - mi.f b: Context
  - mi.f c: u
  - oi.l c: f

@amk-stripe amk-stripe marked this pull request as ready for review January 13, 2026 22:47
@amk-stripe amk-stripe requested review from a team as code owners January 13, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants