-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add method "initWidget" "updateWidget" for StatefullWidget. Add doc 1…
… and 2.
- Loading branch information
1 parent
387c27a
commit b30a67c
Showing
31 changed files
with
902 additions
and
88 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.ittianyu.relight; | ||
|
||
import android.app.Activity; | ||
import android.content.Intent; | ||
import android.os.Bundle; | ||
import android.support.v7.app.AppCompatActivity; | ||
import android.view.View; | ||
|
||
public class MainActivity extends AppCompatActivity { | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
} | ||
|
||
public void onClick(View v) { | ||
switch (v.getId()) { | ||
case R.id._1_AndroidWidget: | ||
start(com.ittianyu.relight._1.WidgetActivity.class); | ||
break; | ||
case R.id._2_LifecycleStatefulWidget: | ||
start(com.ittianyu.relight._2.WidgetActivity.class); | ||
break; | ||
|
||
} | ||
} | ||
|
||
private void start(Class<? extends Activity> activity) { | ||
startActivity(new Intent(this, activity)); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
app/src/main/java/com/ittianyu/relight/MainApplication.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.ittianyu.relight; | ||
|
||
import android.app.Application; | ||
import android.content.Context; | ||
import android.support.multidex.MultiDex; | ||
|
||
import com.squareup.leakcanary.LeakCanary; | ||
|
||
public class MainApplication extends Application { | ||
|
||
@Override | ||
public void onCreate() { | ||
super.onCreate(); | ||
if (LeakCanary.isInAnalyzerProcess(this)) { | ||
// This process is dedicated to LeakCanary for heap analysis. | ||
// You should not init your app in this process. | ||
return; | ||
} | ||
LeakCanary.install(this); | ||
} | ||
|
||
protected void attachBaseContext(Context base) { | ||
super.attachBaseContext(base); | ||
MultiDex.install(this); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
package com.ittianyu.relight._1; | ||
|
||
import android.arch.lifecycle.Lifecycle; | ||
import android.content.Context; | ||
import android.view.View; | ||
import android.widget.TextView; | ||
|
||
import com.ittianyu.relight.R; | ||
import com.ittianyu.relight.common.bean.UserBean; | ||
import com.ittianyu.relight.widget.native_.AndroidWidget; | ||
|
||
public class UserWidget extends AndroidWidget<View> { | ||
private TextView tvId; | ||
private TextView tvName; | ||
private UserBean user; | ||
|
||
public UserWidget(Context context, Lifecycle lifecycle, UserBean user) { | ||
super(context, lifecycle); | ||
this.user = user; | ||
} | ||
|
||
@Override | ||
public View createView(Context context) { | ||
return View.inflate(context, R.layout.activity_user, null); | ||
} | ||
|
||
@Override | ||
public void initView(View view) { | ||
super.initView(view); | ||
tvId = view.findViewById(R.id.tv_id); | ||
tvName = view.findViewById(R.id.tv_name); | ||
} | ||
|
||
@Override | ||
public void updateView(View view) { | ||
super.updateView(view); | ||
tvId.setText(user.getId() + ""); | ||
tvName.setText(user.getName()); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
app/src/main/java/com/ittianyu/relight/_1/WidgetActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.ittianyu.relight._1; | ||
|
||
import android.support.v7.app.AppCompatActivity; | ||
import android.os.Bundle; | ||
import android.view.View; | ||
|
||
import com.ittianyu.relight.common.bean.UserBean; | ||
import com.ittianyu.relight.utils.WidgetUtils; | ||
|
||
public class WidgetActivity extends AppCompatActivity { | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
UserBean user = new UserBean(1, "ittianyu"); | ||
View root = WidgetUtils.render(this, UserWidget.class, user); | ||
// View root = new UserWidget(this, getLifecycle(), user).render(); // this is ok too | ||
setContentView(root); | ||
} | ||
} |
38 changes: 38 additions & 0 deletions
38
app/src/main/java/com/ittianyu/relight/_2/StatefulUserWidget.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package com.ittianyu.relight._2; | ||
|
||
import android.arch.lifecycle.Lifecycle; | ||
import android.content.Context; | ||
import android.view.View; | ||
|
||
import com.ittianyu.relight.common.bean.UserBean; | ||
import com.ittianyu.relight.common.datasource.UserDataSource; | ||
import com.ittianyu.relight.utils.StateUtils; | ||
import com.ittianyu.relight.widget.stateful.AsyncState; | ||
import com.ittianyu.relight.widget.stateful.LifecycleStatefulWidget; | ||
|
||
public class StatefulUserWidget extends LifecycleStatefulWidget<View, UserWidget> { | ||
private UserBean user = UserDataSource.getInstance().getUser(); | ||
|
||
public StatefulUserWidget(Context context, Lifecycle lifecycle) { | ||
super(context, lifecycle); | ||
} | ||
|
||
@Override | ||
protected AsyncState<UserWidget> createState(Context context) { | ||
return StateUtils.create(new UserWidget(context, lifecycle, user)); | ||
} | ||
|
||
@Override | ||
public void initWidget(UserWidget widget) { | ||
widget.setOnClickListener(v -> setState(() -> { | ||
// UserBean data = UserDataSource.getInstance().getUser(); | ||
// user.update(data); | ||
user = UserDataSource.getInstance().getUser(); | ||
})); | ||
} | ||
|
||
@Override | ||
public void updateWidget(UserWidget widget) { | ||
widget.setUser(user); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package com.ittianyu.relight._2; | ||
|
||
import android.arch.lifecycle.Lifecycle; | ||
import android.content.Context; | ||
import android.view.View; | ||
import android.widget.TextView; | ||
|
||
import com.ittianyu.relight.R; | ||
import com.ittianyu.relight.common.bean.UserBean; | ||
import com.ittianyu.relight.widget.native_.AndroidWidget; | ||
|
||
public class UserWidget extends AndroidWidget<View> { | ||
private TextView tvId; | ||
private TextView tvName; | ||
private UserBean user; | ||
|
||
public UserWidget(Context context, Lifecycle lifecycle, UserBean user) { | ||
super(context, lifecycle); | ||
this.user = user; | ||
} | ||
|
||
@Override | ||
public View createView(Context context) { | ||
return View.inflate(context, R.layout.activity_user, null); | ||
} | ||
|
||
@Override | ||
public void initView(View view) { | ||
super.initView(view); | ||
tvId = view.findViewById(R.id.tv_id); | ||
tvName = view.findViewById(R.id.tv_name); | ||
} | ||
|
||
@Override | ||
public void updateView(View view) { | ||
super.updateView(view); | ||
tvId.setText(user.getId() + ""); | ||
tvName.setText(user.getName()); | ||
} | ||
|
||
public void setOnClickListener(View.OnClickListener listener) { | ||
view.setOnClickListener(listener); | ||
} | ||
|
||
public void setUser(UserBean user) { | ||
this.user = user; | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
app/src/main/java/com/ittianyu/relight/_2/WidgetActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.ittianyu.relight._2; | ||
|
||
import android.os.Bundle; | ||
import android.support.v7.app.AppCompatActivity; | ||
import android.view.View; | ||
|
||
import com.ittianyu.relight.utils.WidgetUtils; | ||
|
||
public class WidgetActivity extends AppCompatActivity { | ||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
View root = WidgetUtils.render(this, StatefulUserWidget.class); | ||
setContentView(root); | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
app/src/main/java/com/ittianyu/relight/common/bean/UserBean.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package com.ittianyu.relight.common.bean; | ||
|
||
import java.io.Serializable; | ||
|
||
public class UserBean implements Serializable { | ||
private Integer id; | ||
private String name; | ||
|
||
public UserBean() { | ||
} | ||
|
||
public UserBean(Integer id, String name) { | ||
this.id = id; | ||
this.name = name; | ||
} | ||
|
||
public void update(UserBean bean) { | ||
setId(bean.id); | ||
setName(bean.name); | ||
} | ||
|
||
public Integer getId() { | ||
return id; | ||
} | ||
|
||
public void setId(Integer id) { | ||
this.id = id; | ||
} | ||
|
||
public String getName() { | ||
return name; | ||
} | ||
|
||
public void setName(String name) { | ||
this.name = name; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "UserBean{" + | ||
"id='" + id + '\'' + | ||
", name='" + name + '\'' + | ||
'}'; | ||
} | ||
} |
Oops, something went wrong.