replace page indicator style, add data manager interface, etc.

This commit is contained in:
wangcongtao
2020-02-11 21:52:38 +08:00
parent 4f8b4bb714
commit 19156517ac
38 changed files with 1090 additions and 614 deletions

View File

@@ -0,0 +1,68 @@
package com.mogo.module.service.datamanager;
import android.text.TextUtils;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.datamanager.IMogoDataChangedListener;
import com.mogo.service.datamanager.IMogoDataManager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @author congtaowang
* @since 2020-02-11
* <p>
* 描述
*/
public class MogoDataHandler {
private Map< String, List< IMogoDataChangedListener > > mListeners = new HashMap<>();
private MogoDataHandler() {
// private constructor
}
private static final class InstanceHolder {
private static final MogoDataHandler INSTANCE = new MogoDataHandler();
}
public static MogoDataHandler getInstance() {
return InstanceHolder.INSTANCE;
}
public synchronized void registerDataListener( String tag, IMogoDataChangedListener listener ) {
if ( listener == null || TextUtils.isEmpty( tag ) ) {
return;
}
if ( !mListeners.containsKey( tag ) || mListeners.get( tag ) == null ) {
mListeners.put( tag, new ArrayList< IMogoDataChangedListener >() );
}
}
public synchronized void unregisterListener( String tag, IMogoDataChangedListener listener ) {
if ( listener == null || TextUtils.isEmpty( tag ) ) {
return;
}
if ( mListeners.containsKey( tag ) && mListeners.get( tag ) != null ) {
mListeners.get( tag ).remove( listener );
}
}
public void invoke( String tag, List< Object > datums ) {
if ( tag == null ) {
return;
}
Iterator< IMogoDataChangedListener > iterator = mListeners.get( tag ).iterator();
while ( iterator.hasNext() ) {
IMogoDataChangedListener listener = iterator.next();
if ( listener != null ) {
listener.onDataSetChanged( datums );
}
}
}
}

View File

@@ -0,0 +1,33 @@
package com.mogo.module.service.datamanager;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.datamanager.IMogoDataChangedListener;
import com.mogo.service.datamanager.IMogoDataManager;
/**
* @author congtaowang
* @since 2020-02-11
* <p>
* 描述
*/
@Route( path = MogoServicePaths.PATH_DATA_MANAGER )
public class MogoDataManager implements IMogoDataManager {
@Override
public void registerDataListener( String tag, IMogoDataChangedListener listener ) {
MogoDataHandler.getInstance().registerDataListener( tag, listener );
}
@Override
public void unregisterListener( String tag, IMogoDataChangedListener listener ) {
MogoDataHandler.getInstance().unregisterListener( tag, listener );
}
@Override
public void init( Context context ) {
}
}