tiktok_source/df_miniapp/classes/com/tt/miniapp/LifeCycleManager.java
2020-07-11 13:32:14 -07:00

328 lines
11 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.tt.miniapp;
import com.tt.miniapphost.entity.AppInfoEntity;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class LifeCycleManager extends AppbrandServiceManager.ServiceBase {
private List<Listener> mListeners = new ArrayList<Listener>();
LifeCycleManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) {
super(paramAppbrandApplicationImpl);
}
private void notifyEventLocked(LifeCycleEvent paramLifeCycleEvent, Object paramObject) {
Iterator<Listener> iterator = this.mListeners.iterator();
while (true) {
if (iterator.hasNext()) {
Listener listener = iterator.next();
Method method = listener.mInterestMethods[paramLifeCycleEvent.ordinal()];
if (method != null) {
int i = (method.getParameterTypes()).length;
if (i == 0) {
try {
method.invoke(listener.mOwner, new Object[0]);
} catch (IllegalAccessException|java.lang.reflect.InvocationTargetException illegalAccessException) {}
continue;
}
if (i == 1) {
method.invoke(((Listener)illegalAccessException).mOwner, new Object[] { paramLifeCycleEvent });
continue;
}
method.invoke(((Listener)illegalAccessException).mOwner, new Object[] { paramLifeCycleEvent, paramObject });
}
continue;
}
return;
}
}
public void addLifeCycleListener(Object paramObject) {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: new com/tt/miniapp/LifeCycleManager$Listener
// 5: dup
// 6: aload_0
// 7: aload_1
// 8: invokespecial <init> : (Lcom/tt/miniapp/LifeCycleManager;Ljava/lang/Object;)V
// 11: astore_1
// 12: aload_0
// 13: getfield mListeners : Ljava/util/List;
// 16: aload_1
// 17: invokeinterface add : (Ljava/lang/Object;)Z
// 22: pop
// 23: aload_0
// 24: monitorexit
// 25: return
// 26: astore_1
// 27: aload_0
// 28: monitorexit
// 29: aload_1
// 30: athrow
// Exception table:
// from to target type
// 2 23 26 finally
}
public void checkMethod(Method paramMethod) {
Class[] arrayOfClass = paramMethod.getParameterTypes();
int i = arrayOfClass.length;
if (i == 0)
return;
if (arrayOfClass[0].equals(LifeCycleEvent.class)) {
if (i <= 2)
return;
throw new UnsupportedOperationException("LifecycleInterest注解的方法最多只能有两个参数");
}
throw new IllegalArgumentException("LifecycleInterest注解的方法要么无参数要么第一个参数必须为LifeCycleEvent类型");
}
public void notifyAppCreate() {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_CREATE : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aconst_null
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void notifyAppHide() {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_HIDE : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aconst_null
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void notifyAppInfoInited(AppInfoEntity paramAppInfoEntity) {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_INFO_INITED : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aload_1
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void notifyAppRoute() {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_ROUTE : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aconst_null
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void notifyAppShow() {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_SHOW : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aconst_null
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void notifyAppStartLaunching() {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_START_LAUNCHING : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aconst_null
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void notifyMiniAppInstallSuccess() {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_INSTALL_SUCCESS : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;
// 6: aconst_null
// 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V
// 10: aload_0
// 11: monitorexit
// 12: return
// 13: astore_1
// 14: aload_0
// 15: monitorexit
// 16: aload_1
// 17: athrow
// Exception table:
// from to target type
// 2 10 13 finally
}
public void removeLifeCycleListener(AppbrandServiceManager.ServiceBase paramServiceBase) {
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getfield mListeners : Ljava/util/List;
// 6: invokeinterface iterator : ()Ljava/util/Iterator;
// 11: astore_2
// 12: aload_2
// 13: invokeinterface hasNext : ()Z
// 18: ifeq -> 43
// 21: aload_2
// 22: invokeinterface next : ()Ljava/lang/Object;
// 27: checkcast com/tt/miniapp/LifeCycleManager$Listener
// 30: getfield mOwner : Ljava/lang/Object;
// 33: aload_1
// 34: if_acmpne -> 12
// 37: aload_2
// 38: invokeinterface remove : ()V
// 43: aload_0
// 44: monitorexit
// 45: return
// 46: astore_1
// 47: aload_0
// 48: monitorexit
// 49: goto -> 54
// 52: aload_1
// 53: athrow
// 54: goto -> 52
// Exception table:
// from to target type
// 2 12 46 finally
// 12 43 46 finally
}
public enum LifeCycleEvent {
ON_APP_CREATE, ON_APP_HIDE, ON_APP_INFO_INITED, ON_APP_INSTALL_SUCCESS, ON_APP_ROUTE, ON_APP_SHOW, ON_APP_START_LAUNCHING;
static {
ON_APP_HIDE = new LifeCycleEvent("ON_APP_HIDE", 4);
ON_APP_INSTALL_SUCCESS = new LifeCycleEvent("ON_APP_INSTALL_SUCCESS", 5);
ON_APP_ROUTE = new LifeCycleEvent("ON_APP_ROUTE", 6);
$VALUES = new LifeCycleEvent[] { ON_APP_CREATE, ON_APP_START_LAUNCHING, ON_APP_INFO_INITED, ON_APP_SHOW, ON_APP_HIDE, ON_APP_INSTALL_SUCCESS, ON_APP_ROUTE };
}
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public static @interface LifecycleInterest {
LifeCycleManager.LifeCycleEvent[] value();
}
class Listener {
Method[] mInterestMethods;
Object mOwner;
Listener(Object param1Object) {
this.mOwner = param1Object;
this.mInterestMethods = new Method[(LifeCycleManager.LifeCycleEvent.values()).length];
for (Method method : this.mOwner.getClass().getMethods()) {
if (method.isAnnotationPresent((Class)LifeCycleManager.LifecycleInterest.class)) {
LifeCycleManager.LifeCycleEvent[] arrayOfLifeCycleEvent = ((LifeCycleManager.LifecycleInterest)method.<LifeCycleManager.LifecycleInterest>getAnnotation(LifeCycleManager.LifecycleInterest.class)).value();
int j = arrayOfLifeCycleEvent.length;
int i = 0;
while (i < j) {
LifeCycleManager.LifeCycleEvent lifeCycleEvent = arrayOfLifeCycleEvent[i];
if (this.mInterestMethods[lifeCycleEvent.ordinal()] == null) {
LifeCycleManager.this.checkMethod(method);
this.mInterestMethods[lifeCycleEvent.ordinal()] = method;
i++;
continue;
}
StringBuilder stringBuilder = new StringBuilder("超过一个方法注解了相同的事件, ");
stringBuilder.append(lifeCycleEvent.name());
stringBuilder.append("class: \"");
stringBuilder.append(param1Object.getClass().getSimpleName());
stringBuilder.append("\", method: \"");
stringBuilder.append(this.mInterestMethods[lifeCycleEvent.ordinal()]);
stringBuilder.append("\"\"");
stringBuilder.append(method);
stringBuilder.append("\"");
throw new IllegalStateException(stringBuilder.toString());
}
}
}
}
}
}
/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\LifeCycleManager.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 1.1.3
*/