replace page indicator style, add data manager interface, etc.
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 ) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user