Skip to content

Commit 41c2566

Browse files
committed
[Android]fix jira bugs: NMS-4946、NMS-4961、NMS-4956
1 parent bfecddb commit 41c2566

4 files changed

Lines changed: 52 additions & 18 deletions

File tree

Android/APIExample/app/src/main/java/io/agora/api/example/common/BaseFragment.java

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
public class BaseFragment extends Fragment
1414
{
1515
protected Handler handler;
16+
private AlertDialog mAlertDialog;
17+
private String mAlertDialogMsg;
1618

1719
@Override
1820
public void onCreate(@Nullable Bundle savedInstanceState)
@@ -21,29 +23,58 @@ public void onCreate(@Nullable Bundle savedInstanceState)
2123
handler = new Handler(Looper.getMainLooper());
2224
}
2325

24-
protected void showAlert(String message)
25-
{
26-
Context context = getContext();
27-
if (context == null) {
28-
return;
29-
}
26+
protected void showAlert(String message) {
3027

31-
new AlertDialog.Builder(context).setTitle("Tips").setMessage(message)
32-
.setPositiveButton("OK", (dialog, which) -> dialog.dismiss())
33-
.show();
28+
runOnUIThread(() -> {
29+
Context context = getContext();
30+
if(context == null){
31+
return;
32+
}
33+
if (mAlertDialog == null) {
34+
mAlertDialog = new AlertDialog.Builder(context).setTitle("Tips")
35+
.setPositiveButton("OK", (dialog, which) -> dialog.dismiss())
36+
.create();
37+
}
38+
if (!message.equals(mAlertDialogMsg)) {
39+
mAlertDialogMsg = message;
40+
mAlertDialog.setMessage(mAlertDialogMsg);
41+
mAlertDialog.show();
42+
}
43+
});
3444
}
3545

3646
protected final void showLongToast(final String msg)
3747
{
38-
handler.post(new Runnable()
39-
{
40-
@Override
41-
public void run()
42-
{
43-
if (BaseFragment.this == null || getContext() == null)
44-
{return;}
45-
Toast.makeText(getContext().getApplicationContext(), msg, Toast.LENGTH_LONG).show();
48+
runOnUIThread(() -> {
49+
Context context = getContext();
50+
if(context == null){
51+
return;
4652
}
53+
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
4754
});
4855
}
56+
57+
protected final void runOnUIThread(Runnable runnable){
58+
this.runOnUIThread(runnable, 0);
59+
}
60+
61+
protected final void runOnUIThread(Runnable runnable, long delay){
62+
if(handler != null && runnable != null){
63+
if (delay <= 0 && handler.getLooper().getThread() == Thread.currentThread()) {
64+
runnable.run();
65+
}else{
66+
handler.postDelayed(runnable, delay);
67+
}
68+
}
69+
}
70+
71+
@Override
72+
public void onDestroy() {
73+
super.onDestroy();
74+
handler.removeCallbacksAndMessages(null);
75+
if(mAlertDialog != null){
76+
mAlertDialog.dismiss();
77+
mAlertDialog = null;
78+
}
79+
}
4980
}

Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/ChannelEncryption.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ public void onClick(View v)
195195
* 2:If you call the leaveChannel method during CDN live streaming, the SDK
196196
* triggers the removeInjectStreamUrl method.*/
197197
engine.leaveChannel();
198+
engine.stopPreview();
198199
join.setText(getString(R.string.join));
199200
et_password.setEnabled(true);
200201
encry_mode.setEnabled(true);

Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/JoinMultipleChannel.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ public void onClick(View v)
187187
* 2:If you call the leaveChannel method during CDN live streaming, the SDK
188188
* triggers the removeInjectStreamUrl method.*/
189189
engine.leaveChannel();
190+
engine.leaveChannelEx(rtcConnection2);
191+
engine.stopPreview();
190192
join.setText(getString(R.string.join));
191193
}
192194
}

Android/APIExample/app/src/main/res/layout/fragment_join_multi_channel.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
android:layout_height="match_parent"
4040
android:layout_alignParentStart="true"
4141
android:layout_alignTop="@id/strut1"
42-
android:layout_alignBottom="@id/ll_join"
42+
android:layout_above="@id/ll_join"
4343
android:layout_alignParentEnd="true" />
4444

4545
<LinearLayout

0 commit comments

Comments
 (0)