The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── README-ch.md
├── README.md
├── build.gradle
├── docs
    ├── Tutorial-ch.md
    ├── Tutorial.md
    └── images
    │   └── tangramdemo.gif
├── examples
    ├── .gitignore
    ├── build.gradle
    ├── proguard-rules.pro
    └── src
    │   ├── androidTest
    │       ├── AndroidManifest.xml
    │       ├── assets
    │       │   └── testdata.json
    │       ├── java
    │       │   └── com
    │       │   │   └── tmall
    │       │   │       └── wireless
    │       │   │           └── tangram
    │       │   │               ├── ApplicationTest.java
    │       │   │               ├── BannerTestActivity.java
    │       │   │               ├── CellBindLFEvent.java
    │       │   │               ├── LifeCycleHelperTest.java
    │       │   │               ├── RxBannerSupportTest.java
    │       │   │               ├── RxClickSupportTest.java
    │       │   │               ├── RxExposureSupportTest.java
    │       │   │               └── RxTimerSupportTest.java
    │       └── res
    │       │   └── layout
    │       │       └── test_main_activity.xml
    │   └── main
    │       ├── AndroidManifest.xml
    │       ├── assets
    │           ├── data.json
    │           ├── data3.0.json
    │           ├── data_third.json
    │           └── vvtest.xml
    │       ├── java
    │           └── com
    │           │   ├── alibaba
    │           │       └── android
    │           │       │   └── rx
    │           │       │       ├── JSONArrayObservable.java
    │           │       │       ├── ViewClickObservable.java
    │           │       │       └── lifecycle
    │           │       │           ├── ActivityLFEvent.java
    │           │       │           ├── LFEvent.java
    │           │       │           ├── LifeCycleHelper.java
    │           │       │           ├── LifeCycleProvider.java
    │           │       │           ├── LifeCycleProviderImpl.java
    │           │       │           └── LifecycleTransformer.java
    │           │   └── tmall
    │           │       └── wireless
    │           │           └── tangram
    │           │               └── example
    │           │                   ├── DemoListActivity.java
    │           │                   ├── RxTangramActivity.java
    │           │                   ├── TangramActivity.java
    │           │                   ├── TangramApplication.java
    │           │                   ├── TangramDataParserActivity.java
    │           │                   ├── data
    │           │                       ├── DEBUG.java
    │           │                       ├── FloatView.java
    │           │                       ├── RatioImageView.java
    │           │                       ├── RatioTextView.java
    │           │                       ├── SimpleImgView.java
    │           │                       ├── SingleImageView.java
    │           │                       ├── TestView.java
    │           │                       ├── TestViewHolder.java
    │           │                       ├── TestViewHolderCell.java
    │           │                       └── VVTEST.java
    │           │                   ├── dataparser
    │           │                       └── SampleDataParser.java
    │           │                   ├── support
    │           │                       ├── SampleClickSupport.java
    │           │                       ├── SampleErrorSupport.java
    │           │                       └── SampleScrollSupport.java
    │           │                   └── tangram3
    │           │                       ├── Tangram3Activity.java
    │           │                       ├── TestBlockView.java
    │           │                       ├── TestImageView.java
    │           │                       └── VirtualViewRenderService.java
    │       └── res
    │           ├── drawable
    │               └── item_background.xml
    │           ├── layout
    │               ├── event_bus_activity.xml
    │               ├── item.xml
    │               ├── item_holder.xml
    │               ├── main_activity.xml
    │               ├── nested_activity.xml
    │               └── tabs.xml
    │           ├── mipmap-hdpi
    │               └── ic_launcher.png
    │           ├── mipmap-mdpi
    │               └── ic_launcher.png
    │           ├── mipmap-xhdpi
    │               └── ic_launcher.png
    │           ├── mipmap-xxhdpi
    │               └── ic_launcher.png
    │           └── values
    │               ├── colors.xml
    │               ├── strings.xml
    │               └── styles.xml
├── gradle.properties
├── gradle
    └── wrapper
    │   ├── gradle-wrapper.jar
    │   └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── jcenterDeploy.gradle
├── jcenterInstall.gradle
├── settings.gradle
├── tangram
    ├── .gitignore
    ├── build.gradle
    ├── proguard-rules.pro
    └── src
    │   └── main
    │       ├── AndroidManifest.xml
    │       ├── java
    │           └── com
    │           │   └── tmall
    │           │       └── wireless
    │           │           └── tangram
    │           │               ├── BaseTangramEngine.java
    │           │               ├── DefaultResolverRegistry.java
    │           │               ├── Engine.java
    │           │               ├── MVHelper.java
    │           │               ├── MVResolver.java
    │           │               ├── TangramBuilder.java
    │           │               ├── TangramEngine.java
    │           │               ├── core
    │           │                   ├── adapter
    │           │                   │   ├── BinderViewHolder.java
    │           │                   │   ├── CacheItem.java
    │           │                   │   ├── GroupBasicAdapter.java
    │           │                   │   └── WrapAdapter.java
    │           │                   ├── protocol
    │           │                   │   ├── ControlBinder.java
    │           │                   │   ├── ControlBinderResolver.java
    │           │                   │   ├── LayoutBinder.java
    │           │                   │   ├── LayoutBinderResolver.java
    │           │                   │   ├── ViewCreator.java
    │           │                   │   └── ViewMounter.java
    │           │                   ├── resolver
    │           │                   │   ├── BaseResolver.java
    │           │                   │   ├── ClassResolver.java
    │           │                   │   ├── InstanceResolver.java
    │           │                   │   └── Resolver.java
    │           │                   └── service
    │           │                   │   └── ServiceManager.java
    │           │               ├── dataparser
    │           │                   ├── DataParser.java
    │           │                   ├── IAdapterBuilder.java
    │           │                   └── concrete
    │           │                   │   ├── BaseCardBinderResolver.java
    │           │                   │   ├── BaseCellBinder.java
    │           │                   │   ├── BaseCellBinderResolver.java
    │           │                   │   ├── BaseLayoutBinder.java
    │           │                   │   ├── Card.java
    │           │                   │   ├── CardResolver.java
    │           │                   │   ├── Cell.java
    │           │                   │   ├── ComponentLifecycle.java
    │           │                   │   ├── IDelegateCard.java
    │           │                   │   ├── PojoAdapterBuilder.java
    │           │                   │   ├── PojoDataParser.java
    │           │                   │   ├── PojoGroupBasicAdapter.java
    │           │                   │   ├── Style.java
    │           │                   │   └── WrapperCard.java
    │           │               ├── eventbus
    │           │                   ├── BusSupport.java
    │           │                   ├── Dispatcher.java
    │           │                   ├── Event.java
    │           │                   ├── EventContext.java
    │           │                   ├── EventHandlerWrapper.java
    │           │                   ├── EventPool.java
    │           │                   ├── IDispatcher.java
    │           │                   ├── IDispatcherDelegate.java
    │           │                   └── ReflectedActionFinder.java
    │           │               ├── ext
    │           │                   ├── BannerListener.java
    │           │                   ├── PullFromEndListener.java
    │           │                   └── SwipeItemTouchListener.java
    │           │               ├── op
    │           │                   ├── AppendGroupOp.java
    │           │                   ├── AppendGroupsOp.java
    │           │                   ├── ClickExposureCellOp.java
    │           │                   ├── InsertCellOp.java
    │           │                   ├── InsertCellsOp.java
    │           │                   ├── InsertGroupOp.java
    │           │                   ├── InsertGroupsOp.java
    │           │                   ├── LoadGroupOp.java
    │           │                   ├── LoadMoreOp.java
    │           │                   ├── ParseComponentsOp.java
    │           │                   ├── ParseGroupsOp.java
    │           │                   ├── ParseSingleComponentOp.java
    │           │                   ├── ParseSingleGroupOp.java
    │           │                   ├── RemoveCellOp.java
    │           │                   ├── RemoveCellPositionOp.java
    │           │                   ├── RemoveGroupIdxOp.java
    │           │                   ├── RemoveGroupOp.java
    │           │                   ├── ReplaceCellOp.java
    │           │                   ├── ReplaceGroupContentOp.java
    │           │                   ├── ReplaceGroupOp.java
    │           │                   ├── TangramOp1.java
    │           │                   ├── TangramOp2.java
    │           │                   ├── TangramOp3.java
    │           │                   └── UpdateCellOp.java
    │           │               ├── structure
    │           │                   ├── BaseCell.java
    │           │                   ├── CellRender.java
    │           │                   ├── ViewCreator.java
    │           │                   ├── card
    │           │                   │   ├── BannerCard.java
    │           │                   │   ├── ColumnCard.java
    │           │                   │   ├── DoubleColumnCard.java
    │           │                   │   ├── FiveColumnCard.java
    │           │                   │   ├── FixCard.java
    │           │                   │   ├── FixLinearScrollCard.java
    │           │                   │   ├── FloatCard.java
    │           │                   │   ├── FlowCard.java
    │           │                   │   ├── FourColumnCard.java
    │           │                   │   ├── FusionCard.java
    │           │                   │   ├── GridCard.java
    │           │                   │   ├── LinearCard.java
    │           │                   │   ├── LinearScrollCard.java
    │           │                   │   ├── OneItemCard.java
    │           │                   │   ├── OnePlusNCard.java
    │           │                   │   ├── PinBottomCard.java
    │           │                   │   ├── PinTopCard.java
    │           │                   │   ├── ScrollFixCard.java
    │           │                   │   ├── SingleColumnCard.java
    │           │                   │   ├── SlideCard.java
    │           │                   │   ├── StaggeredCard.java
    │           │                   │   ├── StickyCard.java
    │           │                   │   ├── StickyEndCard.java
    │           │                   │   ├── SwipeCard.java
    │           │                   │   ├── TripleColumnCard.java
    │           │                   │   ├── VVCard.java
    │           │                   │   └── WrapCellCard.java
    │           │                   ├── cell
    │           │                   │   ├── BannerCell.java
    │           │                   │   └── LinearScrollCell.java
    │           │                   ├── style
    │           │                   │   ├── ColumnStyle.java
    │           │                   │   └── DelegateStyle.java
    │           │                   ├── view
    │           │                   │   ├── ITangramViewLifeCycle.java
    │           │                   │   └── SimpleEmptyView.java
    │           │                   └── viewcreator
    │           │                   │   └── ViewHolderCreator.java
    │           │               ├── support
    │           │                   ├── BannerScrollStateChangedObservable.java
    │           │                   ├── BannerScrolledObservable.java
    │           │                   ├── BannerSelectedObservable.java
    │           │                   ├── BannerSupport.java
    │           │                   ├── CardSupport.java
    │           │                   ├── CellClickObservable.java
    │           │                   ├── CellExposureObservable.java
    │           │                   ├── CellSupport.java
    │           │                   ├── ExposureSupport.java
    │           │                   ├── HandlerTimer.java
    │           │                   ├── ITimer.java
    │           │                   ├── InternalErrorSupport.java
    │           │                   ├── PageDetectorSupport.java
    │           │                   ├── RxBannerListener.java
    │           │                   ├── RxBannerScrollStateChangedListener.java
    │           │                   ├── RxBannerScrolledListener.java
    │           │                   ├── RxBannerSelectedListener.java
    │           │                   ├── RxClickListener.java
    │           │                   ├── RxTimer.java
    │           │                   ├── SimpleClickSupport.java
    │           │                   ├── TimerSupport.java
    │           │                   └── async
    │           │                   │   ├── AsyncLoader.java
    │           │                   │   ├── AsyncPageLoader.java
    │           │                   │   └── CardLoadSupport.java
    │           │               ├── util
    │           │                   ├── BDE.java
    │           │                   ├── IInnerImageSetter.java
    │           │                   ├── ImageUtils.java
    │           │                   ├── LifeCycleHelper.java
    │           │                   ├── LifeCycleProviderImpl.java
    │           │                   ├── LifecycleTransformer.java
    │           │                   ├── LogUtils.java
    │           │                   ├── Preconditions.java
    │           │                   ├── Predicate.java
    │           │                   ├── TangramViewMetrics.java
    │           │                   └── Utils.java
    │           │               └── view
    │           │                   ├── BannerView.java
    │           │                   ├── BannerViewPager.java
    │           │                   ├── HorizontalScrollViewExt.java
    │           │                   └── LinearScrollView.java
    │       └── res
    │           ├── drawable
    │               ├── tangram_linearscrollview_indicator.xml
    │               └── tangram_linearscrollview_indicator_bg.xml
    │           ├── layout
    │               ├── tangram_linearscrollview.xml
    │               └── tangram_linearscrollview_parent.xml
    │           └── values
    │               └── ids.xml
└── tangram3
    ├── .gitignore
    ├── build.gradle
    ├── proguard-rules.pro
    └── src
        └── main
            ├── AndroidManifest.xml
            ├── java
                └── com
                │   └── tmall
                │       └── wireless
                │           └── tangram3
                │               ├── BaseTangramEngine.java
                │               ├── ComponentRenderManager.java
                │               ├── DefaultResolverRegistry.java
                │               ├── Engine.java
                │               ├── MVHelper.java
                │               ├── MVResolver.java
                │               ├── TangramBuilder.java
                │               ├── TangramEngine.java
                │               ├── core
                │                   ├── adapter
                │                   │   ├── BinderViewHolder.java
                │                   │   ├── CacheItem.java
                │                   │   ├── GroupBasicAdapter.java
                │                   │   └── WrapAdapter.java
                │                   ├── protocol
                │                   │   ├── ControlBinder.java
                │                   │   ├── ControlBinderResolver.java
                │                   │   ├── ElementRenderService.java
                │                   │   ├── LayoutBinder.java
                │                   │   ├── LayoutBinderResolver.java
                │                   │   ├── ViewCreator.java
                │                   │   └── ViewMounter.java
                │                   ├── resolver
                │                   │   ├── BaseResolver.java
                │                   │   ├── ClassResolver.java
                │                   │   ├── InstanceResolver.java
                │                   │   └── Resolver.java
                │                   └── service
                │                   │   └── ServiceManager.java
                │               ├── dataparser
                │                   ├── DataParser.java
                │                   ├── IAdapterBuilder.java
                │                   └── concrete
                │                   │   ├── BaseCardBinderResolver.java
                │                   │   ├── BaseCellBinder.java
                │                   │   ├── BaseCellBinderResolver.java
                │                   │   ├── BaseLayoutBinder.java
                │                   │   ├── Card.java
                │                   │   ├── CardResolver.java
                │                   │   ├── Cell.java
                │                   │   ├── ComponentInfo.java
                │                   │   ├── ComponentLifecycle.java
                │                   │   ├── IDelegateCard.java
                │                   │   ├── PojoAdapterBuilder.java
                │                   │   ├── PojoDataParser.java
                │                   │   ├── PojoGroupBasicAdapter.java
                │                   │   ├── Style.java
                │                   │   └── WrapperCard.java
                │               ├── eventbus
                │                   ├── BusSupport.java
                │                   ├── Dispatcher.java
                │                   ├── Event.java
                │                   ├── EventContext.java
                │                   ├── EventHandlerWrapper.java
                │                   ├── EventPool.java
                │                   ├── IDispatcher.java
                │                   ├── IDispatcherDelegate.java
                │                   ├── IEventHandlerReceiver.java
                │                   └── ReflectedActionFinder.java
                │               ├── ext
                │                   ├── BannerListener.java
                │                   ├── PullFromEndListener.java
                │                   └── SwipeItemTouchListener.java
                │               ├── structure
                │                   ├── BaseCell.java
                │                   ├── TemplateInfo.java
                │                   ├── ViewCreator.java
                │                   ├── card
                │                   │   ├── BannerCard.java
                │                   │   ├── ColumnCard.java
                │                   │   ├── DoubleColumnCard.java
                │                   │   ├── FiveColumnCard.java
                │                   │   ├── FixCard.java
                │                   │   ├── FixLinearScrollCard.java
                │                   │   ├── FloatCard.java
                │                   │   ├── FlowCard.java
                │                   │   ├── FourColumnCard.java
                │                   │   ├── GridCard.java
                │                   │   ├── LinearCard.java
                │                   │   ├── LinearScrollCard.java
                │                   │   ├── OnePlusNCard.java
                │                   │   ├── PinBottomCard.java
                │                   │   ├── PinTopCard.java
                │                   │   ├── ScrollFixCard.java
                │                   │   ├── SingleColumnCard.java
                │                   │   ├── SlideCard.java
                │                   │   ├── StaggeredCard.java
                │                   │   ├── StickyCard.java
                │                   │   ├── StickyEndCard.java
                │                   │   ├── SwipeCard.java
                │                   │   ├── TripleColumnCard.java
                │                   │   ├── VVCard.java
                │                   │   └── WrapCellCard.java
                │                   ├── cell
                │                   │   ├── BannerCell.java
                │                   │   └── LinearScrollCell.java
                │                   ├── style
                │                   │   └── ColumnStyle.java
                │                   ├── view
                │                   │   ├── ITangramViewLifeCycle.java
                │                   │   └── SimpleEmptyView.java
                │                   └── viewcreator
                │                   │   └── ViewHolderCreator.java
                │               ├── support
                │                   ├── BannerSupport.java
                │                   ├── CardSupport.java
                │                   ├── CellSupport.java
                │                   ├── ExposureSupport.java
                │                   ├── HandlerTimer.java
                │                   ├── ITimer.java
                │                   ├── InternalErrorSupport.java
                │                   ├── PageDetectorSupport.java
                │                   ├── SimpleClickSupport.java
                │                   ├── TemplateUpdateSupport.java
                │                   ├── TimerSupport.java
                │                   └── async
                │                   │   ├── AsyncLoader.java
                │                   │   ├── AsyncPageLoader.java
                │                   │   └── CardLoadSupport.java
                │               ├── util
                │                   ├── BDE.java
                │                   ├── IInnerImageSetter.java
                │                   ├── ImageUtils.java
                │                   ├── LifeCycleHelper.java
                │                   ├── LifeCycleProviderImpl.java
                │                   ├── LifecycleTransformer.java
                │                   ├── LogUtils.java
                │                   ├── Preconditions.java
                │                   ├── Predicate.java
                │                   ├── TangramViewMetrics.java
                │                   └── Utils.java
                │               └── view
                │                   ├── BannerView.java
                │                   ├── BannerViewPager.java
                │                   ├── HorizontalScrollViewExt.java
                │                   └── LinearScrollView.java
            └── res
                ├── drawable
                    ├── tangram_linearscrollview_indicator.xml
                    └── tangram_linearscrollview_indicator_bg.xml
                ├── layout
                    ├── tangram_linearscrollview.xml
                    └── tangram_linearscrollview_parent.xml
                └── values
                    └── ids.xml


/.gitignore:
--------------------------------------------------------------------------------
 1 | # Built application files
 2 | *.apk
 3 | *.ap_
 4 | 
 5 | # Files for the Dalvik VM
 6 | *.dex
 7 | 
 8 | # Java class files
 9 | *.class
10 | 
11 | # Generated files
12 | bin/
13 | gen/
14 | 
15 | # Gradle files
16 | .gradle/
17 | build/
18 | 
19 | # Local configuration file (sdk path, etc)
20 | local.properties
21 | .classpath
22 | .project
23 | .settings/
24 | 
25 | # Proguard folder generated by Eclipse
26 | proguard/
27 | 
28 | #Log Files
29 | *.log
30 | 
31 | # OS X
32 | .DS_Store
33 | 
34 | # Mobile Tools for Java (J2ME)
35 | .mtj.tmp/
36 | 
37 | # Package Files #
38 | *.war
39 | *.ear
40 | *.iml
41 | 
42 | # IDEA Files
43 | .idea/
44 | out/
45 | 
46 | # MAVEN COMPILE Files
47 | target/
48 | lint.xml
49 | .idea/misc.xml
50 | 
51 | captures/
52 | 
53 | config.gradle
54 | 
55 | deploy.gradle
56 | 
57 | #jcenterDeploy.gradle
58 | #jcenterInstall.gradle


--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
 1 | MIT License
 2 | 
 3 | Copyright (c) 2017 Alibaba Group
 4 | 
 5 | Permission is hereby granted, free of charge, to any person obtaining a copy
 6 | of this software and associated documentation files (the "Software"), to deal
 7 | in the Software without restriction, including without limitation the rights
 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 | 
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 | 
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.


--------------------------------------------------------------------------------
/docs/images/tangramdemo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/Tangram-Android/e8fe44d8aa0fd124afaefe945e65da3df9c9244c/docs/images/tangramdemo.gif


--------------------------------------------------------------------------------
/examples/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/examples/proguard-rules.pro:
--------------------------------------------------------------------------------
 1 | # Add project specific ProGuard rules here.
 2 | # By default, the flags in this file are appended to flags specified
 3 | # in /Users/villadora/Library/Android/sdk/tools/proguard/proguard-android.txt
 4 | # You can edit the include path and order by changing the proguardFiles
 5 | # directive in build.gradle.
 6 | #
 7 | # For more details, see
 8 | #   http://developer.android.com/guide/developing/tools/proguard.html
 9 | 
10 | # Add any project specific keep options here:
11 | 
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | #   public *;
17 | #}
18 | 
19 | -dontwarn com.squareup.okhttp.**
20 | -dontwarn com.squareup.picasso.**
21 | 
22 | -keep class com.tmall.wireless.tangram.** { *;}
23 | 
24 | -keepattributes InnerClasses
25 | -keep class com.alibaba.android.vlayout.ExposeLinearLayoutManagerEx { *; }
26 | -keep class android.support.v7.widget.RecyclerView$LayoutParams { *; }
27 | -keep class android.support.v7.widget.RecyclerView$ViewHolder { *; }
28 | -keep class android.support.v7.widget.ChildHelper { *; }
29 | -keep class android.support.v7.widget.ChildHelper$Bucket { *; }
30 | -keep class android.support.v7.widget.RecyclerView$LayoutManager { *; }


--------------------------------------------------------------------------------
/examples/src/androidTest/AndroidManifest.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | 
 3 | <!--
 4 |   ~ MIT License
 5 |   ~
 6 |   ~ Copyright (c) 2018 Alibaba Group
 7 |   ~
 8 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 9 |   ~ of this software and associated documentation files (the "Software"), to deal
10 |   ~ in the Software without restriction, including without limitation the rights
11 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 |   ~ copies of the Software, and to permit persons to whom the Software is
13 |   ~ furnished to do so, subject to the following conditions:
14 |   ~
15 |   ~ The above copyright notice and this permission notice shall be included in all
16 |   ~ copies or substantial portions of the Software.
17 |   ~
18 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 |   ~ SOFTWARE.
25 |   -->
26 | 
27 | <manifest xmlns:android="http://schemas.android.com/apk/res/android"
28 |     package="com.jakewharton.rxbinding2.support.v4">
29 |   <application>
30 |     <activity android:name="com.tmall.wireless.tangram.BannerTestActivity"/>
31 |   </application>
32 | </manifest>
33 | 


--------------------------------------------------------------------------------
/examples/src/androidTest/java/com/tmall/wireless/tangram/ApplicationTest.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram;
26 | 
27 | import android.app.Application;
28 | import android.test.ApplicationTestCase;
29 | 
30 | /**
31 |  * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
32 |  */
33 | public class ApplicationTest extends ApplicationTestCase<Application> {
34 |     public ApplicationTest() {
35 |         super(Application.class);
36 |     }
37 | 
38 | }


--------------------------------------------------------------------------------
/examples/src/main/assets/data_third.json:
--------------------------------------------------------------------------------
 1 | [
 2 |   {
 3 |     "items": [
 4 |       {
 5 |         "msg": "banner item 0",
 6 |         "type": 110
 7 |       },
 8 |       {
 9 |         "msg": "banner item 1",
10 |         "type": 110
11 |       }
12 |     ],
13 |     "type": 1000
14 |   },
15 |   {
16 |     "iconList": [
17 |       {
18 |         "subTitle": "测试内容10jm",
19 |         "title": "测试内容7774",
20 |         "type": 1
21 |       },
22 |       {
23 |         "subTitle": "测试内容10jm",
24 |         "title": "测试内容7774",
25 |         "type": 1
26 |       },
27 |       {
28 |         "subTitle": "测试内容10jm",
29 |         "title": "测试内容7774",
30 |         "type": 1
31 |       },
32 |       {
33 |         "subTitle": "测试内容10jm",
34 |         "title": "测试内容7774",
35 |         "type": 1
36 |       }
37 |     ],
38 |     "type": 2000
39 |   },
40 |   {
41 |     "centerBannerList": [
42 |       {
43 |         "msg": "centerBannerList 0",
44 |         "type": 110
45 |       },
46 |       {
47 |         "msg": "centerBannerList 1",
48 |         "type": 110
49 |       }
50 |     ],
51 |     "type": 1000
52 |   }
53 | ]


--------------------------------------------------------------------------------
/examples/src/main/java/com/alibaba/android/rx/lifecycle/LFEvent.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.alibaba.android.rx.lifecycle;
26 | 
27 | /**
28 |  * Created by longerian on 2018/4/4.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/04/04
32 |  */
33 | 
34 | abstract public class LFEvent {
35 | 
36 |     final protected String name;
37 | 
38 |     protected LFEvent(String name) {
39 |         this.name = name;
40 |     }
41 | 
42 |     @Override
43 |     public String toString() {
44 |         return "LFEvent{" +
45 |             "name='" + name + '\'' +
46 |             '}';
47 |     }
48 | }
49 | 


--------------------------------------------------------------------------------
/examples/src/main/java/com/alibaba/android/rx/lifecycle/LifeCycleProvider.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.alibaba.android.rx.lifecycle;
26 | 
27 | /**
28 |  * Created by longerian on 2018/4/4.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/04/04
32 |  */
33 | 
34 | public interface LifeCycleProvider<E extends LFEvent> {
35 | 
36 |     void emitNext(E event);
37 | 
38 |     <T> LifecycleTransformer<T> bindUntil(E event);
39 | 
40 |     <T> LifecycleTransformer<T> bindToLifecycle();
41 | 
42 | }
43 | 


--------------------------------------------------------------------------------
/examples/src/main/java/com/tmall/wireless/tangram/example/TangramApplication.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.example;
26 | 
27 | import android.app.Application;
28 | import com.squareup.picasso.Picasso;
29 | 
30 | /**
31 |  * Created by longerian on 2018/3/14.
32 |  *
33 |  * @author longerian
34 |  * @date 2018/03/14
35 |  */
36 | 
37 | public class TangramApplication extends Application {
38 | 
39 |     @Override
40 |     public void onCreate() {
41 |         super.onCreate();
42 |         Picasso.setSingletonInstance(new Picasso.Builder(this).loggingEnabled(true).build());
43 |     }
44 | }
45 | 


--------------------------------------------------------------------------------
/examples/src/main/java/com/tmall/wireless/tangram/example/data/FloatView.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.example.data;
26 | 
27 | import com.tmall.wireless.tangram.structure.BaseCell;
28 | import com.tmall.wireless.tangram.structure.CellRender;
29 | 
30 | import android.content.Context;
31 | import android.widget.ImageView;
32 | 
33 | /**
34 |  * Created by villadora on 15/8/24.
35 |  */
36 | public class FloatView extends ImageView {
37 | 
38 |     public FloatView(Context context) {
39 |         super(context);
40 |         setBackgroundColor(0xffffff00);
41 |     }
42 | 
43 |     @CellRender
44 |     public void cellInited(BaseCell cell) {
45 | 
46 |     }
47 | }
48 | 


--------------------------------------------------------------------------------
/examples/src/main/java/com/tmall/wireless/tangram/example/data/TestViewHolder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.example.data;
26 | 
27 | import android.content.Context;
28 | import android.view.View;
29 | import android.widget.TextView;
30 | 
31 | import com.tmall.wireless.tangram.structure.viewcreator.ViewHolderCreator;
32 | 
33 | /**
34 |  * Created by mikeafc on 16/5/26.
35 |  */
36 | public class TestViewHolder extends ViewHolderCreator.ViewHolder {
37 |     public TextView textView;
38 | 
39 |     public TestViewHolder(Context context) {
40 |         super(context);
41 |     }
42 | 
43 |     @Override
44 |     protected void onRootViewCreated(View view) {
45 |         textView = (TextView) view;
46 |     }
47 | }
48 | 


--------------------------------------------------------------------------------
/examples/src/main/java/com/tmall/wireless/tangram/example/support/SampleErrorSupport.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram.example.support;
 2 | 
 3 | import com.tmall.wireless.tangram.dataparser.concrete.BaseCellBinderResolver;
 4 | import com.tmall.wireless.tangram.support.InternalErrorSupport;
 5 | 
 6 | import java.util.Map;
 7 | 
 8 | public class SampleErrorSupport extends InternalErrorSupport {
 9 |     @Override
10 |     public void onError(int code, String msg, Map<String, Object> relativeInfoMap) {
11 | 
12 | 
13 |         super.onError(code, msg, relativeInfoMap);
14 |     }
15 | }
16 | 


--------------------------------------------------------------------------------
/examples/src/main/java/com/tmall/wireless/tangram/example/support/SampleScrollSupport.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram.example.support;
 2 | 
 3 | import android.support.v7.widget.RecyclerView;
 4 | import android.support.v7.widget.RecyclerView.OnScrollListener;
 5 | 
 6 | import java.util.ArrayList;
 7 | import java.util.List;
 8 | 
 9 | public class SampleScrollSupport {
10 |     public interface IScrollListener {
11 |         public void onScrollStateChanged(RecyclerView recyclerView, int newState);
12 | 
13 |         public void onScrolled(RecyclerView recyclerView, int dx, int dy);
14 |     }
15 | 
16 |     private RecyclerView recyclerView;
17 | 
18 |     private List<IScrollListener> scrollListeners = new ArrayList<>();
19 | 
20 |     public SampleScrollSupport(RecyclerView recyclerView) {
21 |         this.recyclerView = recyclerView;
22 |         recyclerView.addOnScrollListener(new OnScrollListener() {
23 |             @Override
24 |             public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
25 |                 for (IScrollListener listener : scrollListeners) {
26 |                     listener.onScrollStateChanged(recyclerView, newState);
27 |                 }
28 |             }
29 | 
30 |             @Override
31 |             public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
32 |                 for (IScrollListener listener : scrollListeners) {
33 |                     listener.onScrolled(recyclerView, dx, dy);
34 |                 }
35 |             }
36 |         });
37 |     }
38 | 
39 |     public void register(IScrollListener scrollListener) {
40 |         if (!scrollListeners.contains(scrollListener)) {
41 |             scrollListeners.add(scrollListener);
42 |         }
43 |     }
44 | }
45 | 


--------------------------------------------------------------------------------
/examples/src/main/res/drawable/item_background.xml:
--------------------------------------------------------------------------------
 1 | <!--
 2 |   ~ MIT License
 3 |   ~
 4 |   ~ Copyright (c) 2018 Alibaba Group
 5 |   ~
 6 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |   ~ of this software and associated documentation files (the "Software"), to deal
 8 |   ~ in the Software without restriction, including without limitation the rights
 9 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |   ~ copies of the Software, and to permit persons to whom the Software is
11 |   ~ furnished to do so, subject to the following conditions:
12 |   ~
13 |   ~ The above copyright notice and this permission notice shall be included in all
14 |   ~ copies or substantial portions of the Software.
15 |   ~
16 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |   ~ SOFTWARE.
23 |   -->
24 | 
25 | <selector xmlns:android="http://schemas.android.com/apk/res/android">
26 |     <item android:drawable="@color/item_activated_color"
27 |           android:state_activated="true"/>
28 | 
29 |     <item android:drawable="@color/item_pressed_color"
30 |           android:state_pressed="true"/>
31 | 
32 |     <item android:drawable="@color/item_default_color"/>
33 | </selector>


--------------------------------------------------------------------------------
/examples/src/main/res/layout/item.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <merge xmlns:android="http://schemas.android.com/apk/res/android">
27 | 
28 |     <TextView
29 |         android:id="@+id/title"
30 |         android:layout_width="match_parent"
31 |         android:layout_height="130dp"
32 |         android:background="@drawable/item_background"
33 |         android:gravity="center"
34 |         android:textColor="#999999"
35 |         android:textSize="10sp"
36 |         android:textStyle="bold" />
37 | </merge>


--------------------------------------------------------------------------------
/examples/src/main/res/layout/item_holder.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <TextView xmlns:android="http://schemas.android.com/apk/res/android"
27 |     android:id="@+id/title"
28 |     android:layout_width="match_parent"
29 |     android:layout_height="130dp"
30 |     android:background="@drawable/item_background"
31 |     android:gravity="center"
32 |     android:textColor="#999999"
33 |     android:textSize="10sp"
34 |     android:textStyle="bold" />
35 | 


--------------------------------------------------------------------------------
/examples/src/main/res/layout/nested_activity.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
27 |              android:layout_width="match_parent"
28 |              android:layout_height="match_parent"
29 |              android:orientation="vertical">
30 | 
31 |     <com.tmall.wireless.tangram.example.ScrollingListView
32 |         android:id="@+id/list"
33 |         android:layout_width="match_parent"
34 |         android:layout_height="match_parent"
35 |         android:nestedScrollingEnabled="true">
36 | 
37 |     </com.tmall.wireless.tangram.example.ScrollingListView>
38 | </FrameLayout>


--------------------------------------------------------------------------------
/examples/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/Tangram-Android/e8fe44d8aa0fd124afaefe945e65da3df9c9244c/examples/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/examples/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/Tangram-Android/e8fe44d8aa0fd124afaefe945e65da3df9c9244c/examples/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/examples/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/Tangram-Android/e8fe44d8aa0fd124afaefe945e65da3df9c9244c/examples/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/examples/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/Tangram-Android/e8fe44d8aa0fd124afaefe945e65da3df9c9244c/examples/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/examples/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | 
 3 | <!--
 4 |   ~ MIT License
 5 |   ~
 6 |   ~ Copyright (c) 2018 Alibaba Group
 7 |   ~
 8 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 9 |   ~ of this software and associated documentation files (the "Software"), to deal
10 |   ~ in the Software without restriction, including without limitation the rights
11 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 |   ~ copies of the Software, and to permit persons to whom the Software is
13 |   ~ furnished to do so, subject to the following conditions:
14 |   ~
15 |   ~ The above copyright notice and this permission notice shall be included in all
16 |   ~ copies or substantial portions of the Software.
17 |   ~
18 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 |   ~ SOFTWARE.
25 |   -->
26 | 
27 | <resources>
28 |     <color name="item_border_color">#666666</color>
29 |     <color name="item_default_color">#EEEEEE</color>
30 |     <color name="item_pressed_color">#CCCCCC</color>
31 |     <color name="item_activated_color">#77CEEE</color>
32 |     
33 | </resources>


--------------------------------------------------------------------------------
/examples/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
 1 | <!--
 2 |   ~ MIT License
 3 |   ~
 4 |   ~ Copyright (c) 2018 Alibaba Group
 5 |   ~
 6 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |   ~ of this software and associated documentation files (the "Software"), to deal
 8 |   ~ in the Software without restriction, including without limitation the rights
 9 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |   ~ copies of the Software, and to permit persons to whom the Software is
11 |   ~ furnished to do so, subject to the following conditions:
12 |   ~
13 |   ~ The above copyright notice and this permission notice shall be included in all
14 |   ~ copies or substantial portions of the Software.
15 |   ~
16 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |   ~ SOFTWARE.
23 |   -->
24 | 
25 | <resources>
26 |     <string name="app_name">Example for Tangram</string>
27 | </resources>
28 | 


--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/Tangram-Android/e8fe44d8aa0fd124afaefe945e65da3df9c9244c/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
 1 | #
 2 | # MIT License
 3 | #
 4 | # Copyright (c) 2017 Alibaba Group
 5 | #
 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy
 7 | # of this software and associated documentation files (the "Software"), to deal
 8 | # in the Software without restriction, including without limitation the rights
 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | # copies of the Software, and to permit persons to whom the Software is
11 | # furnished to do so, subject to the following conditions:
12 | #
13 | # The above copyright notice and this permission notice shall be included in all
14 | # copies or substantial portions of the Software.
15 | #
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | # SOFTWARE.
23 | #
24 | 
25 | #Tue Nov 29 17:56:28 CST 2016
26 | distributionBase=GRADLE_USER_HOME
27 | distributionPath=wrapper/dists
28 | zipStoreBase=GRADLE_USER_HOME
29 | zipStorePath=wrapper/dists
30 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
31 | 


--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2017 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | include ':tangram'
26 | include ':tangram3'
27 | include ':examples'
28 | 
29 | File configFile = file('./config.gradle')
30 | if (configFile.exists()) {
31 |     apply from: './config.gradle'
32 | }


--------------------------------------------------------------------------------
/tangram/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/tangram/proguard-rules.pro:
--------------------------------------------------------------------------------
 1 | # Add project specific ProGuard rules here.
 2 | # By default, the flags in this file are appended to flags specified
 3 | # in /Users/longerian/Documents/devtools/android-sdk-macosx/tools/proguard/proguard-android.txt
 4 | # You can edit the include path and order by changing the proguardFiles
 5 | # directive in build.gradle.
 6 | #
 7 | # For more details, see
 8 | #   http://developer.android.com/guide/developing/tools/proguard.html
 9 | 
10 | # Add any project specific keep options here:
11 | 
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | #   public *;
17 | #}
18 | 


--------------------------------------------------------------------------------
/tangram/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
 1 | <!--
 2 |   ~ MIT License
 3 |   ~
 4 |   ~ Copyright (c) 2018 Alibaba Group
 5 |   ~
 6 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |   ~ of this software and associated documentation files (the "Software"), to deal
 8 |   ~ in the Software without restriction, including without limitation the rights
 9 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |   ~ copies of the Software, and to permit persons to whom the Software is
11 |   ~ furnished to do so, subject to the following conditions:
12 |   ~
13 |   ~ The above copyright notice and this permission notice shall be included in all
14 |   ~ copies or substantial portions of the Software.
15 |   ~
16 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |   ~ SOFTWARE.
23 |   -->
24 | 
25 | <manifest xmlns:android="http://schemas.android.com/apk/res/android"
26 |           package="com.tmall.wireless.tangram.core">
27 | </manifest>
28 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/adapter/CacheItem.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.adapter;
26 | 
27 | /**
28 |  * Created by villadora on 16/3/10.
29 |  */
30 | public interface CacheItem {
31 | 
32 |     boolean isStableCache();
33 | }
34 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/adapter/WrapAdapter.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.adapter;
26 | 
27 | import android.support.v7.widget.RecyclerView;
28 | import android.view.ViewGroup;
29 | 
30 | /**
31 |  * Created by villadora on 15/12/15.
32 |  */
33 | public class WrapAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
34 |     @Override
35 |     public VH onCreateViewHolder(ViewGroup parent, int viewType) {
36 |         return null;
37 |     }
38 | 
39 |     @Override
40 |     public void onBindViewHolder(VH holder, int position) {
41 | 
42 |     }
43 | 
44 |     @Override
45 |     public int getItemCount() {
46 |         return 0;
47 |     }
48 | }
49 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/protocol/ControlBinder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.protocol;
26 | 
27 | import android.view.View;
28 | 
29 | /**
30 |  * @author villadora
31 |  */
32 | public interface ControlBinder<DT, V extends View> extends ViewMounter<DT, V>, ViewCreator<V> {
33 | 
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/protocol/ControlBinderResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.protocol;
26 | 
27 | import android.view.View;
28 | 
29 | import com.tmall.wireless.tangram.core.resolver.InstanceResolver;
30 | 
31 | /**
32 |  */
33 | public class ControlBinderResolver<CB extends ControlBinder<?, ? extends View>> extends InstanceResolver<CB> {
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/protocol/LayoutBinder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.protocol;
26 | 
27 | import android.support.annotation.Nullable;
28 | 
29 | import com.alibaba.android.vlayout.LayoutHelper;
30 | 
31 | /**
32 |  * Created by villadora on 15/8/23.
33 |  */
34 | public interface LayoutBinder<L> {
35 | 
36 |     @Nullable
37 |     LayoutHelper getHelper(String type, L data);
38 | 
39 | }
40 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/protocol/LayoutBinderResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.protocol;
26 | 
27 | import com.tmall.wireless.tangram.core.resolver.InstanceResolver;
28 | 
29 | /**
30 |  * Created by villadora on 15/8/23.
31 |  */
32 | public class LayoutBinderResolver<L, CB extends LayoutBinder<L>> extends InstanceResolver<CB> {
33 | }
34 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/protocol/ViewCreator.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.protocol;
26 | 
27 | import android.content.Context;
28 | import android.support.annotation.NonNull;
29 | import android.view.View;
30 | import android.view.ViewGroup;
31 | 
32 | /**
33 |  * Created by villadora on 15/12/8.
34 |  */
35 | public interface ViewCreator<V extends View> {
36 |     @NonNull
37 |     V createView(Context context, ViewGroup parent);
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/protocol/ViewMounter.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.protocol;
26 | 
27 | import android.support.annotation.NonNull;
28 | import android.view.View;
29 | 
30 | /**
31 |  * Created by villadora on 15/12/8.
32 |  */
33 | public interface ViewMounter<DT, V extends View> {
34 | 
35 |     void mountView(@NonNull DT data, @NonNull V view);
36 | 
37 |     void unmountView(@NonNull DT data, @NonNull V view);
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/resolver/InstanceResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.resolver;
26 | 
27 | /**
28 |  * @author villadora
29 |  */
30 | public abstract class InstanceResolver<T> extends BaseResolver<T, T> {
31 | 
32 |     @Override
33 |     public T create(String type) {
34 |         return mSparseArray.get(type);
35 |     }
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/core/resolver/Resolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.core.resolver;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/23.
29 |  */
30 | public interface Resolver<T, O> {
31 | 
32 |     String UNKNOWN = "unknown";
33 | 
34 |     int size();
35 | 
36 |     String type(T gen);
37 | 
38 |     O create(String type);
39 | 
40 |     void register(String type, T gen);
41 | 
42 |     boolean has(String type);
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/dataparser/concrete/BaseCellBinderResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.dataparser.concrete;
26 | 
27 | import android.view.View;
28 | 
29 | import com.tmall.wireless.tangram.core.protocol.ControlBinderResolver;
30 | import com.tmall.wireless.tangram.structure.viewcreator.ViewHolderCreator;
31 | 
32 | /**
33 |  *
34 |  */
35 | public class BaseCellBinderResolver extends ControlBinderResolver<BaseCellBinder<? extends ViewHolderCreator.ViewHolder, ? extends View>> {
36 | 
37 | }
38 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/dataparser/concrete/BaseLayoutBinder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.dataparser.concrete;
26 | 
27 | import android.support.annotation.Nullable;
28 | 
29 | import com.alibaba.android.vlayout.LayoutHelper;
30 | import com.tmall.wireless.tangram.core.protocol.LayoutBinder;
31 | 
32 | /**
33 |  * Created by villadora on 15/8/24.
34 |  */
35 | public class BaseLayoutBinder implements LayoutBinder<Card> {
36 | 
37 | 
38 |     @Nullable
39 |     @Override
40 |     public LayoutHelper getHelper(String type, Card data) {
41 |         if (data == null) return null;
42 |         return data.getLayoutHelper();
43 |     }
44 | }
45 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/dataparser/concrete/CardResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.dataparser.concrete;
26 | 
27 | import com.tmall.wireless.tangram.core.resolver.ClassResolver;
28 | 
29 | /**
30 |  * Created by villadora on 15/8/23.
31 |  */
32 | public class CardResolver extends ClassResolver<Card> {
33 |     public boolean hasType(String type) {
34 |         return mSparseArray.get(type) != null;
35 |     }
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/dataparser/concrete/Cell.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.dataparser.concrete;
26 | 
27 | 
28 | import android.view.View;
29 | 
30 | import com.tmall.wireless.tangram.structure.BaseCell;
31 | 
32 | /**
33 |  * Created by mikeafc on 16/5/20.
34 |  */
35 | 
36 | public class Cell<V extends View> extends BaseCell<V> {
37 | }
38 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/dataparser/concrete/IDelegateCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.dataparser.concrete;
26 | 
27 | import java.util.List;
28 | 
29 | /**
30 |  * Created by villadora on 15/8/31.
31 |  */
32 | public interface IDelegateCard {
33 | 
34 |     List<Card> getCards(CardResolver resolver);
35 | 
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/eventbus/EventContext.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.eventbus;
26 | 
27 | import com.tmall.wireless.tangram.BaseTangramEngine;
28 | 
29 | /**
30 |  * Created by longerian on 16/4/26.
31 |  */
32 | public class EventContext {
33 | 
34 |     public Object producer;
35 | 
36 |     public BaseTangramEngine tangramCore;
37 | 
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/eventbus/IDispatcher.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.eventbus;
26 | 
27 | import android.support.annotation.NonNull;
28 | 
29 | import java.util.List;
30 | 
31 | /**
32 |  * Created by longerian on 16/4/27.
33 |  */
34 | public interface IDispatcher {
35 | 
36 |     void start();
37 | 
38 |     boolean enqueue(@NonNull Event event);
39 | 
40 |     boolean enqueue(@NonNull List<Event> eventList);
41 | 
42 |     void stopSelf();
43 | 
44 | }
45 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/eventbus/IDispatcherDelegate.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.eventbus;
26 | 
27 | import android.support.annotation.NonNull;
28 | 
29 | /**
30 |  * Created by longerian on 16/4/27.
31 |  */
32 | public interface IDispatcherDelegate {
33 | 
34 |     void dispatch(@NonNull Event event);
35 | 
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/ext/BannerListener.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.ext;
26 | 
27 | /**
28 |  * Created by mikeafc on 17/4/10.
29 |  */
30 | 
31 | public interface BannerListener {
32 |     void onPageScrolled(int position, float positionOffset, int positionOffsetPixels, int direction);
33 | 
34 |     void onPageSelected(int position);
35 | 
36 |     void onPageScrollStateChanged(int state);
37 | 
38 |     void onItemPositionInBanner(int position);
39 | }


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/ext/PullFromEndListener.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.ext;
26 | 
27 | /**
28 |  * Created by mikeafc on 17/2/13.
29 |  */
30 | 
31 | public interface PullFromEndListener {
32 |     boolean isReadyToPull();
33 | 
34 |     int getPullEdge();
35 | 
36 |     void onPull(float x, float y);
37 | 
38 |     void onReleaseToAction(float x, float y);
39 | 
40 |     void onAction();
41 | 
42 |     void onReset();
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/AppendGroupOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class AppendGroupOp extends TangramOp1<Card> {
37 |     public AppendGroupOp(Card arg1) {
38 |         super(arg1);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/AppendGroupsOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import java.util.List;
28 | 
29 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
30 | 
31 | /**
32 |  * Created by longerian on 2018/3/23.
33 |  *
34 |  * @author longerian
35 |  * @date 2018/03/23
36 |  */
37 | 
38 | public class AppendGroupsOp extends TangramOp1<List<Card>> {
39 |     public AppendGroupsOp(List<Card> arg1) {
40 |         super(arg1);
41 |     }
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ClickExposureCellOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import android.view.View;
28 | import com.tmall.wireless.tangram.structure.BaseCell;
29 | 
30 | /**
31 |  * Created by longerian on 2018/3/29.
32 |  *
33 |  * @author longerian
34 |  * @date 2018/03/29
35 |  */
36 | 
37 | public class ClickExposureCellOp extends TangramOp3<View, BaseCell, Integer> {
38 | 
39 |     public ClickExposureCellOp(View arg1, BaseCell arg2, Integer arg3) {
40 |         super(arg1, arg2, arg3);
41 |     }
42 | 
43 | 
44 | }
45 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/InsertCellOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.structure.BaseCell;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class InsertCellOp extends TangramOp2<Integer, BaseCell> {
37 | 
38 |     public InsertCellOp(int arg1, BaseCell arg2) {
39 |         super(arg1, arg2);
40 |     }
41 | 
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/InsertCellsOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import java.util.List;
28 | 
29 | import com.tmall.wireless.tangram.structure.BaseCell;
30 | 
31 | /**
32 |  * Created by longerian on 2018/3/23.
33 |  *
34 |  * @author longerian
35 |  * @date 2018/03/23
36 |  */
37 | 
38 | public class InsertCellsOp extends TangramOp2<Integer, List<BaseCell>> {
39 |     public InsertCellsOp(Integer arg1, List<BaseCell> arg2) {
40 |         super(arg1, arg2);
41 |     }
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/InsertGroupOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class InsertGroupOp extends TangramOp2<Integer, Card> {
37 |     public InsertGroupOp(Integer arg1, Card arg2) {
38 |         super(arg1, arg2);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/InsertGroupsOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import java.util.List;
28 | 
29 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
30 | 
31 | /**
32 |  * Created by longerian on 2018/3/23.
33 |  *
34 |  * @author longerian
35 |  * @date 2018/03/23
36 |  */
37 | 
38 | public class InsertGroupsOp extends TangramOp2<Integer, List<Card>> {
39 |     public InsertGroupsOp(Integer arg1, List<Card> arg2) {
40 |         super(arg1, arg2);
41 |     }
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/LoadGroupOp.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram.op;
 2 | 
 3 | import java.util.List;
 4 | 
 5 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
 6 | import com.tmall.wireless.tangram.structure.BaseCell;
 7 | 
 8 | /**
 9 |  * Created by longerian on 2018/3/26.
10 |  *
11 |  * @author longerian
12 |  * @date 2018/03/26
13 |  */
14 | 
15 | public class LoadGroupOp extends TangramOp2<Card, List<BaseCell>> {
16 |     public LoadGroupOp(Card arg1, List<BaseCell> arg2) {
17 |         super(arg1, arg2);
18 |     }
19 | }
20 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/LoadMoreOp.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram.op;
 2 | 
 3 | import java.util.List;
 4 | 
 5 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
 6 | import com.tmall.wireless.tangram.structure.BaseCell;
 7 | 
 8 | /**
 9 |  * Created by longerian on 2018/3/26.
10 |  *
11 |  * @author longerian
12 |  * @date 2018/03/26
13 |  */
14 | 
15 | public class LoadMoreOp extends TangramOp3<Card, List<BaseCell>, Boolean> {
16 | 
17 |     public LoadMoreOp(Card arg1, List<BaseCell> arg2, Boolean arg3) {
18 |         super(arg1, arg2, arg3);
19 |     }
20 | 
21 | }
22 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ParseComponentsOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.core.service.ServiceManager;
28 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
29 | import org.json.JSONArray;
30 | 
31 | /**
32 |  * Created by longerian on 2018/3/28.
33 |  *
34 |  * @author longerian
35 |  * @date 2018/03/28
36 |  */
37 | 
38 | public class ParseComponentsOp extends TangramOp3<JSONArray, Card, ServiceManager> {
39 |     public ParseComponentsOp(JSONArray arg1, Card arg2, ServiceManager arg3) {
40 |         super(arg1, arg2, arg3);
41 |     }
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ParseGroupsOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.core.service.ServiceManager;
28 | import org.json.JSONArray;
29 | 
30 | /**
31 |  * Created by longerian on 2018/3/28.
32 |  *
33 |  * @author longerian
34 |  * @date 2018/03/28
35 |  */
36 | 
37 | public class ParseGroupsOp extends TangramOp2<JSONArray, ServiceManager> {
38 |     public ParseGroupsOp(JSONArray arg1, ServiceManager arg2) {
39 |         super(arg1, arg2);
40 |     }
41 | }
42 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ParseSingleComponentOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.core.service.ServiceManager;
28 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
29 | import org.json.JSONObject;
30 | 
31 | /**
32 |  * Created by longerian on 2018/3/28.
33 |  *
34 |  * @author longerian
35 |  * @date 2018/03/28
36 |  */
37 | 
38 | public class ParseSingleComponentOp extends TangramOp3<JSONObject, Card, ServiceManager> {
39 |     public ParseSingleComponentOp(JSONObject arg1, Card arg2, ServiceManager arg3) {
40 |         super(arg1, arg2, arg3);
41 |     }
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ParseSingleGroupOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.core.service.ServiceManager;
28 | import org.json.JSONObject;
29 | 
30 | /**
31 |  * Created by longerian on 2018/3/28.
32 |  *
33 |  * @author longerian
34 |  * @date 2018/03/28
35 |  */
36 | 
37 | public class ParseSingleGroupOp extends TangramOp2<JSONObject, ServiceManager> {
38 |     public ParseSingleGroupOp(JSONObject arg1, ServiceManager arg2) {
39 |         super(arg1, arg2);
40 |     }
41 | }
42 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/RemoveCellOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.structure.BaseCell;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class RemoveCellOp extends TangramOp1<BaseCell> {
37 |     public RemoveCellOp(BaseCell arg1) {
38 |         super(arg1);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/RemoveCellPositionOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | /**
28 |  * Created by longerian on 2018/3/23.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/03/23
32 |  */
33 | 
34 | public class RemoveCellPositionOp extends TangramOp1<Integer> {
35 |     public RemoveCellPositionOp(Integer arg1) {
36 |         super(arg1);
37 |     }
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/RemoveGroupIdxOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | /**
28 |  * Created by longerian on 2018/3/23.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/03/23
32 |  */
33 | 
34 | public class RemoveGroupIdxOp extends TangramOp1<Integer> {
35 |     public RemoveGroupIdxOp(Integer arg1) {
36 |         super(arg1);
37 |     }
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/RemoveGroupOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class RemoveGroupOp extends TangramOp1<Card> {
37 |     public RemoveGroupOp(Card arg1) {
38 |         super(arg1);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ReplaceCellOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.structure.BaseCell;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class ReplaceCellOp extends TangramOp2<BaseCell, BaseCell> {
37 |     public ReplaceCellOp(BaseCell arg1, BaseCell arg2) {
38 |         super(arg1, arg2);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ReplaceGroupContentOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import java.util.List;
28 | 
29 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
30 | import com.tmall.wireless.tangram.structure.BaseCell;
31 | 
32 | /**
33 |  * Created by longerian on 2018/3/23.
34 |  *
35 |  * @author longerian
36 |  * @date 2018/03/23
37 |  */
38 | 
39 | public class ReplaceGroupContentOp extends TangramOp2<Card, List<BaseCell>> {
40 |     public ReplaceGroupContentOp(Card arg1, List<BaseCell> arg2) {
41 |         super(arg1, arg2);
42 |     }
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/ReplaceGroupOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class ReplaceGroupOp extends TangramOp2<Card, Card> {
37 |     public ReplaceGroupOp(Card arg1, Card arg2) {
38 |         super(arg1, arg2);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/TangramOp1.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | /**
28 |  * Created by longerian on 2018/3/23.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/03/23
32 |  */
33 | 
34 | public class TangramOp1<V1> {
35 | 
36 |     public TangramOp1(V1 arg1) {
37 |         this.arg1 = arg1;
38 |     }
39 | 
40 |     private V1 arg1;
41 | 
42 |     public V1 getArg1() {
43 |         return arg1;
44 |     }
45 | 
46 |     public void setArg1(V1 arg1) {
47 |         this.arg1 = arg1;
48 |     }
49 | }
50 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/TangramOp2.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | /**
28 |  * Created by longerian on 2018/3/23.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/03/23
32 |  */
33 | 
34 | public class TangramOp2<V1, V2> extends TangramOp1<V1> {
35 | 
36 |     private V2 arg2;
37 | 
38 |     public TangramOp2(V1 arg1, V2 arg2) {
39 |         super(arg1);
40 |         this.arg2 = arg2;
41 |     }
42 | 
43 |     public V2 getArg2() {
44 |         return arg2;
45 |     }
46 | 
47 |     public void setArg2(V2 arg2) {
48 |         this.arg2 = arg2;
49 |     }
50 | }
51 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/TangramOp3.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram.op;
 2 | 
 3 | /**
 4 |  * Created by longerian on 2018/3/26.
 5 |  *
 6 |  * @author longerian
 7 |  * @date 2018/03/26
 8 |  */
 9 | 
10 | public class TangramOp3<V1, V2, V3> extends TangramOp2<V1, V2> {
11 | 
12 |     private V3 arg3;
13 | 
14 |     public TangramOp3(V1 arg1, V2 arg2, V3 arg3) {
15 |         super(arg1, arg2);
16 |         this.arg3 = arg3;
17 |     }
18 | 
19 |     public V3 getArg3() {
20 |         return arg3;
21 |     }
22 | 
23 |     public void setArg3(V3 arg3) {
24 |         this.arg3 = arg3;
25 |     }
26 | }
27 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/op/UpdateCellOp.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.op;
26 | 
27 | import com.tmall.wireless.tangram.structure.BaseCell;
28 | 
29 | /**
30 |  * Created by longerian on 2018/3/23.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/03/23
34 |  */
35 | 
36 | public class UpdateCellOp extends TangramOp1<BaseCell> {
37 |     public UpdateCellOp(BaseCell arg1) {
38 |         super(arg1);
39 |     }
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/CellRender.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure;
26 | 
27 | import java.lang.annotation.ElementType;
28 | import java.lang.annotation.Retention;
29 | import java.lang.annotation.RetentionPolicy;
30 | import java.lang.annotation.Target;
31 | 
32 | /**
33 |  * Created by mikeafc on 16/4/28.
34 |  */
35 | @Retention(RetentionPolicy.RUNTIME)
36 | @Target(ElementType.METHOD)
37 | public @interface CellRender {
38 |     String key() default "";
39 | }
40 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/ColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Card perform column layout
29 |  */
30 | public abstract class ColumnCard extends GridCard {
31 | 
32 |     public ColumnCard(int column) {
33 |         super(column);
34 |     }
35 | }
36 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/DoubleColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/31.
29 |  */
30 | public class DoubleColumnCard extends ColumnCard {
31 |     public DoubleColumnCard() {
32 |         super(2);
33 |     }
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/FiveColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/31.
29 |  */
30 | public class FiveColumnCard extends ColumnCard {
31 |     public FiveColumnCard() {
32 |         super(5);
33 |     }
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/FlowCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Created by longerian on 17/2/13.
29 |  */
30 | 
31 | public class FlowCard extends GridCard {
32 | 
33 |     public FlowCard() {
34 |         super(1);
35 |     }
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/FourColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * @author villadora
29 |  * @since 1.0.0
30 |  */
31 | public class FourColumnCard extends ColumnCard {
32 |     public FourColumnCard() {
33 |         super(4);
34 |     }
35 | }
36 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/OneItemCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | import android.support.annotation.NonNull;
28 | 
29 | import com.tmall.wireless.tangram.MVHelper;
30 | import com.tmall.wireless.tangram.dataparser.concrete.Card;
31 | 
32 | import org.json.JSONObject;
33 | 
34 | /**
35 |  * Created by villadora on 15/8/25.
36 |  */
37 | public abstract class OneItemCard extends Card {
38 |     @Override
39 |     public void parseWith(@NonNull JSONObject data, @NonNull MVHelper resolver) {
40 |         maxChildren = 1;
41 |         super.parseWith(data, resolver);
42 |     }
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/SingleColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/11/21.
29 |  */
30 | public class SingleColumnCard extends ColumnCard {
31 | 
32 |     public SingleColumnCard() {
33 |         super(1);
34 |     }
35 | }
36 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/StickyEndCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | import org.json.JSONObject;
28 | 
29 | /**
30 |  * Created by villadora on 15/11/24.
31 |  */
32 | public class StickyEndCard extends StickyCard {
33 |     @Override
34 |     public void parseStyle(JSONObject data) {
35 |         this.style = new StickyStyle(false);
36 |         if (data != null)
37 |             style.parseWith(data);
38 |     }
39 | }
40 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/SwipeCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Card that can swipe horizontally
29 |  */
30 | public interface SwipeCard {
31 |     /**
32 |      * Get current index of page for swipe card
33 |      *
34 |      * @return the index of page for this card
35 |      */
36 |     int getCurrentIndex();
37 | 
38 |     /**
39 |      * @return total pages that this card can be swiped
40 |      */
41 |     int getTotalPage();
42 | 
43 |     /**
44 |      * Switch to another page card with index
45 |      *
46 |      * @param index the index of page
47 |      */
48 |     void switchTo(int index);
49 | }
50 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/card/TripleColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/31.
29 |  */
30 | public class TripleColumnCard extends ColumnCard {
31 |     public TripleColumnCard() {
32 |         super(3);
33 |     }
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/structure/view/ITangramViewLifeCycle.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.structure.view;
26 | 
27 | import com.tmall.wireless.tangram.structure.BaseCell;
28 | 
29 | /**
30 |  * The {@link android.view.View} of component with universal model {@link BaseCell} is recommended to implement this interface. These view life cycler method will be called directly instead of reflection.
31 |  * <br />
32 |  * Created by longerian on 16/8/29.
33 |  */
34 | public interface ITangramViewLifeCycle {
35 | 
36 |     void cellInited(BaseCell cell);
37 | 
38 |     void postBindView(BaseCell cell);
39 | 
40 |     void postUnBindView(BaseCell cell);
41 | 
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/support/InternalErrorSupport.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram.support;
 2 | 
 3 | import java.util.Map;
 4 | 
 5 | public class InternalErrorSupport {
 6 |     public static final int ERROR_CREATE_VIEWHOLDER_NOT_FOUND_TYPE = 0;
 7 | 
 8 |     public void onError(int code, String msg, Map<String, Object> relativeInfoMap) {
 9 | 
10 |     }
11 | }
12 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/support/RxBannerScrollStateChangedListener.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.support;
26 | 
27 | /**
28 |  * Created by longerian on 2018/3/9.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/03/09
32 |  */
33 | 
34 | public class RxBannerScrollStateChangedListener extends RxBannerListener<Integer> {
35 | 
36 |     @Override
37 |     public void onPageScrollStateChanged(final int state) {
38 |         if (!isDisposed()) {
39 |             mObserver.onNext(state);
40 |         }
41 |     }
42 | 
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/support/RxBannerSelectedListener.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.support;
26 | 
27 | /**
28 |  * Created by longerian on 2018/3/9.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/03/09
32 |  */
33 | 
34 | public class RxBannerSelectedListener extends RxBannerListener<Integer> {
35 | 
36 |     @Override
37 |     public void onPageSelected(final int position) {
38 |         if (!isDisposed()) {
39 |             mObserver.onNext(position);
40 |         }
41 |     }
42 | 
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/util/BDE.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.util;
26 | 
27 | /**
28 |  * Created by longerian on 2018/4/9.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/04/09
32 |  */
33 | 
34 | public class BDE {
35 | 
36 |     public static final BDE BIND = new BDE("bind");
37 |     public static final BDE UNBIND = new BDE("unbind");
38 | 
39 |     final protected String name;
40 | 
41 |     public BDE(String name) {this.name = name;}
42 | 
43 |     @Override
44 |     public String toString() {
45 |         return "BDE{" +
46 |             "name='" + name + '\'' +
47 |             '}';
48 |     }
49 | }
50 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/util/IInnerImageSetter.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.util;
26 | 
27 | import android.support.annotation.NonNull;
28 | import android.support.annotation.Nullable;
29 | import android.widget.ImageView;
30 | 
31 | 
32 | /**
33 |  * Provide a universal image load api for Tangram, users should implement it and provide it to Tangram framework during init phase.
34 |  */
35 | public interface IInnerImageSetter {
36 |     <IMAGE extends ImageView> void doLoadImageUrl(@NonNull IMAGE view, @Nullable String url);
37 | }
38 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/util/LifeCycleHelper.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.util;
26 | 
27 | import io.reactivex.Observable;
28 | 
29 | /**
30 |  * Created by longerian on 2018/4/9.
31 |  *
32 |  * @author longerian
33 |  * @date 2018/04/09
34 |  */
35 | 
36 | public class LifeCycleHelper {
37 | 
38 |     public static <T, E> LifecycleTransformer<T> bindUntilEvent(Observable<E> lifecycle, final E event) {
39 |         return new LifecycleTransformer<>(lifecycle.filter(new io.reactivex.functions.Predicate<E>() {
40 |             @Override
41 |             public boolean test(E e) throws Exception {
42 |                 return e.equals(event);
43 |             }
44 |         }));
45 |     }
46 | 
47 | }
48 | 


--------------------------------------------------------------------------------
/tangram/src/main/java/com/tmall/wireless/tangram/util/Predicate.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram.util;
26 | 
27 | /**
28 |  * Created by villadora on 15/11/17.
29 |  */
30 | public interface Predicate<T> {
31 | 
32 |     boolean isMatch(T data);
33 | }
34 | 


--------------------------------------------------------------------------------
/tangram/src/main/res/drawable/tangram_linearscrollview_indicator.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <shape xmlns:android="http://schemas.android.com/apk/res/android"
27 |     android:shape="rectangle">
28 | 
29 |     <size
30 |         android:width="26dp"
31 |         android:height="3dp" />
32 |     <corners android:radius="1.5dp" />
33 |     <solid android:color="#80ffffff" />
34 | </shape>


--------------------------------------------------------------------------------
/tangram/src/main/res/drawable/tangram_linearscrollview_indicator_bg.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <shape xmlns:android="http://schemas.android.com/apk/res/android"
27 |     android:shape="rectangle">
28 | 
29 |     <size
30 |         android:width="60dp"
31 |         android:height="3dp" />
32 |     <corners android:radius="1.5dp" />
33 |     <solid android:color="#80ffffff" />
34 | </shape>


--------------------------------------------------------------------------------
/tangram/src/main/res/layout/tangram_linearscrollview_parent.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
27 |     xmlns:tools="http://schemas.android.com/tools"
28 |     android:layout_width="match_parent"
29 |     android:layout_height="wrap_content"
30 |     android:gravity="center_horizontal"
31 |     android:orientation="vertical"
32 |     tools:background="@android:color/black"
33 |     tools:paddingBottom="12dp"
34 |     tools:paddingTop="9dp">
35 | 
36 |     <include layout="@layout/tangram_linearscrollview" />
37 | </LinearLayout>


--------------------------------------------------------------------------------
/tangram/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <resources>
27 |     <item name="TANGRAM_VIEW_HOLDER_TAG" type="id" />
28 |     <item name="TANGRAM_VIEW_CONTAINER_ID" type="id" />
29 |     <item name="TANGRAM_BANNER_ID" type="id" />
30 |     <item name="TANGRAM_BANNER_HEADER_ID" type="id" />
31 |     <item name="TANGRAM_BANNER_FOOTER_ID" type="id" />
32 |     <item name="tk_banner" type="id" />
33 |     <item name="TANGRAM_BANNER_INDICATOR_POS" type="id"/>
34 |     <item name="TANGRAM_LINEAR_SCROLL_POS" type="id"/>
35 |     <item name="TANGRAM_ENGINE_TAG" type="id" />
36 | </resources>


--------------------------------------------------------------------------------
/tangram3/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/tangram3/proguard-rules.pro:
--------------------------------------------------------------------------------
 1 | # Add project specific ProGuard rules here.
 2 | # By default, the flags in this file are appended to flags specified
 3 | # in /Users/longerian/Documents/devtools/android-sdk-macosx/tools/proguard/proguard-android.txt
 4 | # You can edit the include path and order by changing the proguardFiles
 5 | # directive in build.gradle.
 6 | #
 7 | # For more details, see
 8 | #   http://developer.android.com/guide/developing/tools/proguard.html
 9 | 
10 | # Add any project specific keep options here:
11 | 
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | #   public *;
17 | #}
18 | 


--------------------------------------------------------------------------------
/tangram3/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
 1 | <!--
 2 |   ~ MIT License
 3 |   ~
 4 |   ~ Copyright (c) 2018 Alibaba Group
 5 |   ~
 6 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |   ~ of this software and associated documentation files (the "Software"), to deal
 8 |   ~ in the Software without restriction, including without limitation the rights
 9 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |   ~ copies of the Software, and to permit persons to whom the Software is
11 |   ~ furnished to do so, subject to the following conditions:
12 |   ~
13 |   ~ The above copyright notice and this permission notice shall be included in all
14 |   ~ copies or substantial portions of the Software.
15 |   ~
16 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |   ~ SOFTWARE.
23 |   -->
24 | 
25 | <manifest xmlns:android="http://schemas.android.com/apk/res/android"
26 |           package="com.tmall.wireless.tangram3.core">
27 | </manifest>
28 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/adapter/CacheItem.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.adapter;
26 | 
27 | /**
28 |  * Created by villadora on 16/3/10.
29 |  */
30 | public interface CacheItem {
31 | 
32 |     boolean isStableCache();
33 | }
34 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/adapter/WrapAdapter.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.adapter;
26 | 
27 | import android.support.v7.widget.RecyclerView;
28 | import android.view.ViewGroup;
29 | 
30 | /**
31 |  * Created by villadora on 15/12/15.
32 |  */
33 | public class WrapAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
34 |     @Override
35 |     public VH onCreateViewHolder(ViewGroup parent, int viewType) {
36 |         return null;
37 |     }
38 | 
39 |     @Override
40 |     public void onBindViewHolder(VH holder, int position) {
41 | 
42 |     }
43 | 
44 |     @Override
45 |     public int getItemCount() {
46 |         return 0;
47 |     }
48 | }
49 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/ControlBinder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.protocol;
26 | 
27 | import android.view.View;
28 | 
29 | /**
30 |  * @author villadora
31 |  */
32 | public interface ControlBinder<DT, V extends View> extends ViewMounter<DT, V>, ViewCreator<V> {
33 | 
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/ControlBinderResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.protocol;
26 | 
27 | import android.view.View;
28 | 
29 | import com.tmall.wireless.tangram3.core.resolver.InstanceResolver;
30 | 
31 | /**
32 |  */
33 | public class ControlBinderResolver<CB extends ControlBinder<?, ? extends View>> extends InstanceResolver<CB> {
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/ElementRenderService.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram3.core.protocol;
 2 | 
 3 | import android.content.Context;
 4 | import android.view.View;
 5 | import android.view.ViewGroup;
 6 | 
 7 | import com.alibaba.fastjson.JSONObject;
 8 | import com.tmall.wireless.tangram3.TangramEngine;
 9 | import com.tmall.wireless.tangram3.dataparser.concrete.ComponentInfo;
10 | 
11 | import java.util.List;
12 | 
13 | public abstract class ElementRenderService {
14 | 
15 |     abstract public void init(TangramEngine tangramEngine);
16 | 
17 |     abstract public View createView(Context context, ViewGroup parent, ComponentInfo info);
18 | 
19 |     abstract public boolean mountView(JSONObject json, View view);
20 | 
21 |     abstract public void unmountView(JSONObject json, View view);
22 | 
23 |     /**
24 |      * Tangram would call this method to ask renderService supple component info
25 |      * when the data json does not have a component info.
26 |      *
27 |      * @param cellType
28 |      * @return
29 |      */
30 |     public ComponentInfo supplementComponentInfo(String cellType) {
31 |         return null;
32 |     }
33 | 
34 |     abstract public void destroy();
35 | 
36 |     abstract public String getSDKBizName();
37 | 
38 |     abstract public ComponentInfo onParseComponentInfo(ComponentInfo info);
39 | 
40 |     abstract public void onDownloadComponentInfo(List<ComponentInfo> componentInfoList);
41 | 
42 |     public String getItemViewType(String type, ComponentInfo componentInfo) {
43 |         return null;
44 |     }
45 | }


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/LayoutBinder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.protocol;
26 | 
27 | import android.support.annotation.Nullable;
28 | 
29 | import com.alibaba.android.vlayout.LayoutHelper;
30 | 
31 | /**
32 |  * Created by villadora on 15/8/23.
33 |  */
34 | public interface LayoutBinder<L> {
35 | 
36 |     @Nullable
37 |     LayoutHelper getHelper(String type, L data);
38 | 
39 | }
40 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/LayoutBinderResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.protocol;
26 | 
27 | import com.tmall.wireless.tangram3.core.resolver.InstanceResolver;
28 | 
29 | /**
30 |  * Created by villadora on 15/8/23.
31 |  */
32 | public class LayoutBinderResolver<L, CB extends LayoutBinder<L>> extends InstanceResolver<CB> {
33 | }
34 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/ViewCreator.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.protocol;
26 | 
27 | import android.content.Context;
28 | import android.support.annotation.NonNull;
29 | import android.view.View;
30 | import android.view.ViewGroup;
31 | 
32 | import com.tmall.wireless.tangram3.dataparser.concrete.ComponentInfo;
33 | 
34 | /**
35 |  * Created by villadora on 15/12/8.
36 |  */
37 | public interface ViewCreator<V extends View> {
38 |     @NonNull
39 |     V createView(Context context, ViewGroup parent, ComponentInfo componentInfo);
40 | }
41 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/protocol/ViewMounter.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.protocol;
26 | 
27 | import android.support.annotation.NonNull;
28 | import android.view.View;
29 | 
30 | /**
31 |  * Created by villadora on 15/12/8.
32 |  */
33 | public interface ViewMounter<DT, V extends View> {
34 | 
35 |     void mountView(@NonNull DT data, @NonNull V view);
36 | 
37 |     void unmountView(@NonNull DT data, @NonNull V view);
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/resolver/InstanceResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.resolver;
26 | 
27 | /**
28 |  * @author villadora
29 |  */
30 | public abstract class InstanceResolver<T> extends BaseResolver<T, T> {
31 | 
32 |     @Override
33 |     public T create(String type) {
34 |         return mSparseArray.get(type);
35 |     }
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/core/resolver/Resolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.core.resolver;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/23.
29 |  */
30 | public interface Resolver<T, O> {
31 | 
32 |     String UNKNOWN = "unknown";
33 | 
34 |     int size();
35 | 
36 |     String type(T gen);
37 | 
38 |     O create(String type);
39 | 
40 |     void register(String type, T gen);
41 | 
42 |     boolean has(String type);
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/dataparser/concrete/BaseCellBinderResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.dataparser.concrete;
26 | 
27 | import android.view.View;
28 | 
29 | import com.tmall.wireless.tangram3.core.protocol.ControlBinderResolver;
30 | import com.tmall.wireless.tangram3.structure.viewcreator.ViewHolderCreator;
31 | 
32 | /**
33 |  *
34 |  */
35 | public class BaseCellBinderResolver extends ControlBinderResolver<BaseCellBinder<? extends ViewHolderCreator.ViewHolder, ? extends View>> {
36 | 
37 | }
38 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/dataparser/concrete/BaseLayoutBinder.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.dataparser.concrete;
26 | 
27 | import android.support.annotation.Nullable;
28 | 
29 | import com.alibaba.android.vlayout.LayoutHelper;
30 | import com.tmall.wireless.tangram3.core.protocol.LayoutBinder;
31 | 
32 | /**
33 |  * Created by villadora on 15/8/24.
34 |  */
35 | public class BaseLayoutBinder implements LayoutBinder<Card> {
36 | 
37 | 
38 |     @Nullable
39 |     @Override
40 |     public LayoutHelper getHelper(String type, Card data) {
41 |         if (data == null) return null;
42 |         return data.getLayoutHelper();
43 |     }
44 | }
45 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/dataparser/concrete/CardResolver.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.dataparser.concrete;
26 | 
27 | import com.tmall.wireless.tangram3.core.resolver.ClassResolver;
28 | 
29 | /**
30 |  * Created by villadora on 15/8/23.
31 |  */
32 | public class CardResolver extends ClassResolver<Card> {
33 |     public boolean hasType(String type) {
34 |         return mSparseArray.get(type) != null;
35 |     }
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/dataparser/concrete/Cell.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.dataparser.concrete;
26 | 
27 | 
28 | import android.view.View;
29 | 
30 | import com.tmall.wireless.tangram3.structure.BaseCell;
31 | 
32 | /**
33 |  * Created by mikeafc on 16/5/20.
34 |  */
35 | 
36 | public class Cell extends BaseCell {
37 | }
38 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/dataparser/concrete/ComponentInfo.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram3.dataparser.concrete;
 2 | 
 3 | import com.alibaba.fastjson.JSONObject;
 4 | 
 5 | public class ComponentInfo {
 6 |     public static final String NAME = "name";
 7 | 
 8 |     public static final String ID = "id";
 9 | 
10 |     public static final String TYPE = "type";
11 | 
12 |     public static final String VERSION = "version";
13 | 
14 |     public static final String URL = "url";
15 | 
16 |     private String name;
17 | 
18 |     private String id;
19 | 
20 |     private String type;
21 | 
22 |     private long version;
23 | 
24 |     private String url;
25 | 
26 |     public ComponentInfo() {
27 |     }
28 | 
29 |     public ComponentInfo(JSONObject json) {
30 |         this.name = json.getString(NAME);
31 |         this.id = json.getString(ID);
32 |         this.type = json.getString(TYPE);
33 |         this.version = json.getLongValue(VERSION);
34 |         this.url = json.getString(URL);
35 |     }
36 | 
37 |     public String getId() {
38 |         return id;
39 |     }
40 | 
41 |     public void setId(String id) {
42 |         this.id = id;
43 |     }
44 | 
45 |     public String getType() {
46 |         return type;
47 |     }
48 | 
49 |     public void setType(String type) {
50 |         this.type = type;
51 |     }
52 | 
53 |     public long getVersion() {
54 |         return version;
55 |     }
56 | 
57 |     public String getName() {
58 |         return name;
59 |     }
60 | 
61 |     public void setName(String name) {
62 |         this.name = name;
63 |     }
64 | 
65 |     public void setVersion(long version) {
66 |         this.version = version;
67 |     }
68 | 
69 |     public String getUrl() {
70 |         return url;
71 |     }
72 | 
73 |     public void setUrl(String url) {
74 |         this.url = url;
75 |     }
76 | }
77 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/dataparser/concrete/IDelegateCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.dataparser.concrete;
26 | 
27 | import java.util.List;
28 | 
29 | /**
30 |  * Created by villadora on 15/8/31.
31 |  */
32 | public interface IDelegateCard {
33 | 
34 |     List<Card> getCards(CardResolver resolver);
35 | 
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/eventbus/EventContext.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.eventbus;
26 | 
27 | import com.tmall.wireless.tangram3.BaseTangramEngine;
28 | 
29 | /**
30 |  * Created by longerian on 16/4/26.
31 |  */
32 | public class EventContext {
33 | 
34 |     public Object producer;
35 | 
36 |     public BaseTangramEngine tangramCore;
37 | 
38 | }
39 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/eventbus/IDispatcher.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.eventbus;
26 | 
27 | import android.support.annotation.NonNull;
28 | 
29 | import java.util.List;
30 | 
31 | /**
32 |  * Created by longerian on 16/4/27.
33 |  */
34 | public interface IDispatcher {
35 | 
36 |     void start();
37 | 
38 |     boolean enqueue(@NonNull Event event);
39 | 
40 |     boolean enqueue(@NonNull List<Event> eventList);
41 | 
42 |     void stopSelf();
43 | 
44 | }
45 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/eventbus/IDispatcherDelegate.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.eventbus;
26 | 
27 | import android.support.annotation.NonNull;
28 | 
29 | /**
30 |  * Created by longerian on 16/4/27.
31 |  */
32 | public interface IDispatcherDelegate {
33 | 
34 |     void dispatch(@NonNull Event event);
35 | 
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/eventbus/IEventHandlerReceiver.java:
--------------------------------------------------------------------------------
1 | package com.tmall.wireless.tangram3.eventbus;
2 | 
3 | public interface IEventHandlerReceiver {
4 |     void handleEvent(Event event);
5 | }
6 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/ext/BannerListener.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.ext;
26 | 
27 | /**
28 |  * Created by mikeafc on 17/4/10.
29 |  */
30 | 
31 | public interface BannerListener {
32 |     void onPageScrolled(int position, float positionOffset, int positionOffsetPixels, int direction);
33 | 
34 |     void onPageSelected(int position);
35 | 
36 |     void onPageScrollStateChanged(int state);
37 | 
38 |     void onItemPositionInBanner(int position);
39 | }


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/ext/PullFromEndListener.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.ext;
26 | 
27 | /**
28 |  * Created by mikeafc on 17/2/13.
29 |  */
30 | 
31 | public interface PullFromEndListener {
32 |     boolean isReadyToPull();
33 | 
34 |     int getPullEdge();
35 | 
36 |     void onPull(float x, float y);
37 | 
38 |     void onReleaseToAction(float x, float y);
39 | 
40 |     void onAction();
41 | 
42 |     void onReset();
43 | }
44 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/ColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Card perform column layout
29 |  */
30 | public abstract class ColumnCard extends GridCard {
31 | 
32 |     public ColumnCard(int column) {
33 |         super(column);
34 |     }
35 | }
36 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/DoubleColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/31.
29 |  */
30 | public class DoubleColumnCard extends ColumnCard {
31 |     public DoubleColumnCard() {
32 |         super(2);
33 |     }
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/FiveColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/31.
29 |  */
30 | public class FiveColumnCard extends ColumnCard {
31 |     public FiveColumnCard() {
32 |         super(5);
33 |     }
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/FlowCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by longerian on 17/2/13.
29 |  */
30 | 
31 | public class FlowCard extends GridCard {
32 | 
33 |     public FlowCard() {
34 |         super(1);
35 |     }
36 | }
37 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/FourColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * @author villadora
29 |  * @since 1.0.0
30 |  */
31 | public class FourColumnCard extends ColumnCard {
32 |     public FourColumnCard() {
33 |         super(4);
34 |     }
35 | }
36 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/SingleColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/11/21.
29 |  */
30 | public class SingleColumnCard extends ColumnCard {
31 | 
32 |     public SingleColumnCard() {
33 |         super(1);
34 |     }
35 | }
36 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/StickyEndCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/11/24.
29 |  */
30 | public class StickyEndCard extends StickyCard {
31 | 
32 | }
33 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/SwipeCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Card that can swipe horizontally
29 |  */
30 | public interface SwipeCard {
31 |     /**
32 |      * Get current index of page for swipe card
33 |      *
34 |      * @return the index of page for this card
35 |      */
36 |     int getCurrentIndex();
37 | 
38 |     /**
39 |      * @return total pages that this card can be swiped
40 |      */
41 |     int getTotalPage();
42 | 
43 |     /**
44 |      * Switch to another page card with index
45 |      *
46 |      * @param index the index of page
47 |      */
48 |     void switchTo(int index);
49 | }
50 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/TripleColumnCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by villadora on 15/8/31.
29 |  */
30 | public class TripleColumnCard extends ColumnCard {
31 |     public TripleColumnCard() {
32 |         super(3);
33 |     }
34 | }
35 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/card/WrapCellCard.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.card;
26 | 
27 | /**
28 |  * Created by longerian on 17/4/10.
29 |  *
30 |  * @author longerian
31 |  * @date 2017/04/10
32 |  */
33 | 
34 | public class WrapCellCard extends GridCard {
35 | 
36 |     public WrapCellCard() {
37 |         super(1);
38 |     }
39 | }


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/style/ColumnStyle.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.style;
26 | 
27 | import android.support.annotation.Nullable;
28 | 
29 | import com.tmall.wireless.tangram3.dataparser.concrete.Style;
30 | 
31 | import org.json.JSONArray;
32 | import org.json.JSONObject;
33 | 
34 | /**
35 |  * Created by huifeng.hxl on 2015/1/15.
36 |  */
37 | public class ColumnStyle extends Style {
38 | 
39 |     @Nullable
40 |     public float[] cols;
41 | 
42 |     @Nullable
43 |     public float[] rows;
44 | }
45 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/structure/view/ITangramViewLifeCycle.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.structure.view;
26 | 
27 | import com.tmall.wireless.tangram3.structure.BaseCell;
28 | 
29 | /**
30 |  * The {@link android.view.View} of component with universal model {@link BaseCell} is recommended to implement this interface. These view life cycler method will be called directly instead of reflection.
31 |  * <br />
32 |  * Created by longerian on 16/8/29.
33 |  */
34 | public interface ITangramViewLifeCycle {
35 | 
36 |     void cellInited(BaseCell cell);
37 | 
38 |     void postBindView(BaseCell cell);
39 | 
40 |     void postUnBindView(BaseCell cell);
41 | 
42 | }
43 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/support/InternalErrorSupport.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram3.support;
 2 | 
 3 | import java.util.Map;
 4 | 
 5 | public class InternalErrorSupport {
 6 |     public static final int ERROR_CREATE_VIEWHOLDER_NOT_FOUND_TYPE = 0;
 7 | 
 8 |     public static final int ERROR_PARSE_CARDS_ERROR = 1;
 9 | 
10 |     public void onError(int code, String msg, Map<String, Object> relativeInfoMap) {
11 | 
12 |     }
13 | }
14 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/support/TemplateUpdateSupport.java:
--------------------------------------------------------------------------------
 1 | package com.tmall.wireless.tangram3.support;
 2 | 
 3 | import com.tmall.wireless.tangram3.structure.TemplateInfo;
 4 | 
 5 | public class TemplateUpdateSupport {
 6 |     public void onUpdate(TemplateInfo templateInfo) {
 7 | 
 8 |     }
 9 | }
10 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/util/BDE.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.util;
26 | 
27 | /**
28 |  * Created by longerian on 2018/4/9.
29 |  *
30 |  * @author longerian
31 |  * @date 2018/04/09
32 |  */
33 | 
34 | public class BDE {
35 | 
36 |     public static final BDE BIND = new BDE("bind");
37 |     public static final BDE UNBIND = new BDE("unbind");
38 | 
39 |     final protected String name;
40 | 
41 |     public BDE(String name) {this.name = name;}
42 | 
43 |     @Override
44 |     public String toString() {
45 |         return "BDE{" +
46 |             "name='" + name + '\'' +
47 |             '}';
48 |     }
49 | }
50 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/util/IInnerImageSetter.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.util;
26 | 
27 | import android.support.annotation.NonNull;
28 | import android.support.annotation.Nullable;
29 | import android.widget.ImageView;
30 | 
31 | 
32 | /**
33 |  * Provide a universal image load api for Tangram, users should implement it and provide it to Tangram framework during init phase.
34 |  */
35 | public interface IInnerImageSetter {
36 |     <IMAGE extends ImageView> void doLoadImageUrl(@NonNull IMAGE view, @Nullable String url);
37 | }
38 | 


--------------------------------------------------------------------------------
/tangram3/src/main/java/com/tmall/wireless/tangram3/util/Predicate.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * MIT License
 3 |  *
 4 |  * Copyright (c) 2018 Alibaba Group
 5 |  *
 6 |  * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 |  * of this software and associated documentation files (the "Software"), to deal
 8 |  * in the Software without restriction, including without limitation the rights
 9 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 |  * copies of the Software, and to permit persons to whom the Software is
11 |  * furnished to do so, subject to the following conditions:
12 |  *
13 |  * The above copyright notice and this permission notice shall be included in all
14 |  * copies or substantial portions of the Software.
15 |  *
16 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 |  * SOFTWARE.
23 |  */
24 | 
25 | package com.tmall.wireless.tangram3.util;
26 | 
27 | /**
28 |  * Created by villadora on 15/11/17.
29 |  */
30 | public interface Predicate<T> {
31 | 
32 |     boolean isMatch(T data);
33 | }
34 | 


--------------------------------------------------------------------------------
/tangram3/src/main/res/drawable/tangram_linearscrollview_indicator.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <shape xmlns:android="http://schemas.android.com/apk/res/android"
27 |     android:shape="rectangle">
28 | 
29 |     <size
30 |         android:width="26dp"
31 |         android:height="3dp" />
32 |     <corners android:radius="1.5dp" />
33 |     <solid android:color="#80ffffff" />
34 | </shape>


--------------------------------------------------------------------------------
/tangram3/src/main/res/drawable/tangram_linearscrollview_indicator_bg.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <shape xmlns:android="http://schemas.android.com/apk/res/android"
27 |     android:shape="rectangle">
28 | 
29 |     <size
30 |         android:width="60dp"
31 |         android:height="3dp" />
32 |     <corners android:radius="1.5dp" />
33 |     <solid android:color="#80ffffff" />
34 | </shape>


--------------------------------------------------------------------------------
/tangram3/src/main/res/layout/tangram_linearscrollview_parent.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
27 |     xmlns:tools="http://schemas.android.com/tools"
28 |     android:layout_width="match_parent"
29 |     android:layout_height="wrap_content"
30 |     android:gravity="center_horizontal"
31 |     android:orientation="vertical"
32 |     tools:background="@android:color/black"
33 |     tools:paddingBottom="12dp"
34 |     tools:paddingTop="9dp">
35 | 
36 |     <include layout="@layout/tangram_linearscrollview" />
37 | </LinearLayout>


--------------------------------------------------------------------------------
/tangram3/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!--
 3 |   ~ MIT License
 4 |   ~
 5 |   ~ Copyright (c) 2018 Alibaba Group
 6 |   ~
 7 |   ~ Permission is hereby granted, free of charge, to any person obtaining a copy
 8 |   ~ of this software and associated documentation files (the "Software"), to deal
 9 |   ~ in the Software without restriction, including without limitation the rights
10 |   ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 |   ~ copies of the Software, and to permit persons to whom the Software is
12 |   ~ furnished to do so, subject to the following conditions:
13 |   ~
14 |   ~ The above copyright notice and this permission notice shall be included in all
15 |   ~ copies or substantial portions of the Software.
16 |   ~
17 |   ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 |   ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 |   ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 |   ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 |   ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 |   ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 |   ~ SOFTWARE.
24 |   -->
25 | 
26 | <resources>
27 |     <item name="TANGRAM_VIEW_HOLDER_TAG" type="id" />
28 |     <item name="TANGRAM_VIEW_CONTAINER_ID" type="id" />
29 |     <item name="TANGRAM_BANNER_ID" type="id" />
30 |     <item name="TANGRAM_BANNER_HEADER_ID" type="id" />
31 |     <item name="TANGRAM_BANNER_FOOTER_ID" type="id" />
32 |     <item name="tk_banner" type="id" />
33 |     <item name="TANGRAM_BANNER_INDICATOR_POS" type="id"/>
34 |     <item name="TANGRAM_LINEAR_SCROLL_POS" type="id"/>
35 |     <item name="TANGRAM_ENGINE_TAG" type="id" />
36 | </resources>


--------------------------------------------------------------------------------