Skip to content

Commit 7034c7b

Browse files
committed
添加气泡提示
1 parent 1cc32c6 commit 7034c7b

File tree

12 files changed

+688
-53
lines changed

12 files changed

+688
-53
lines changed

app/src/main/java/com/ichtj/basetools/MainActivity.java

Lines changed: 23 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,15 @@
11
package com.ichtj.basetools;
22

3-
import android.app.AlertDialog;
4-
import android.content.Context;
5-
import android.content.DialogInterface;
63
import android.content.Intent;;
7-
import android.content.pm.PackageManager;
8-
import android.content.pm.ResolveInfo;
9-
import android.database.Cursor;
10-
import android.graphics.Color;
114
import android.net.Uri;
125
import android.os.Bundle;
136
import android.os.Environment;
147
import android.os.Handler;
15-
import android.provider.MediaStore;
16-
import android.util.Log;
178
import android.view.Gravity;
18-
import android.view.ViewGroup;
19-
import android.view.WindowManager;
9+
import android.view.View;
2010
import android.widget.Button;
21-
import android.widget.LinearLayout;
22-
import android.widget.RadioButton;
23-
import android.widget.RadioGroup;
24-
import android.widget.ScrollView;
25-
import android.widget.TextView;
2611

2712
import androidx.annotation.Nullable;
28-
import androidx.core.content.ContextCompat;
2913

3014
import com.alibaba.android.arouter.facade.annotation.Route;
3115
import com.chtj.base_framework.FScreentTools;
@@ -39,12 +23,10 @@
3923
import com.face_chtj.base_iotutils.AudioUtils;
4024
import com.face_chtj.base_iotutils.BaseIotUtils;
4125
import com.face_chtj.base_iotutils.DeviceUtils;
42-
import com.face_chtj.base_iotutils.FileUtils;
4326
import com.face_chtj.base_iotutils.GlobalDialogUtils;
4427
import com.face_chtj.base_iotutils.KLog;
4528
import com.face_chtj.base_iotutils.NetUtils;
4629
import com.face_chtj.base_iotutils.NotifyUtils;
47-
import com.face_chtj.base_iotutils.ShellUtils;
4830
import com.face_chtj.base_iotutils.TPoolSingleUtils;
4931
import com.face_chtj.base_iotutils.TPoolUtils;
5032
import com.face_chtj.base_iotutils.ToastUtils;
@@ -75,6 +57,7 @@
7557
import com.ichtj.basetools.socket.SocketAty;
7658
import com.ichtj.basetools.timer.TimerAty;
7759
import com.ichtj.basetools.touch.TouchDetectAty;
60+
import com.face_chtj.base_iotutils.view.PopupWindowTools;
7861
import com.ichtj.basetools.util.CustomButtonGridView;
7962
import com.ichtj.basetools.util.FKey;
8063
import com.ichtj.basetools.util.JXLExcelUtils;
@@ -87,9 +70,7 @@
8770
import com.ichtj.basetools.video.VideoPlayAty;
8871
import com.ichtj.basetools.webviews.WebViewAty;
8972

90-
import java.io.File;
9173
import java.io.InputStream;
92-
import java.util.ArrayList;
9374
import java.util.HashMap;
9475
import java.util.List;
9576
import java.util.Map;
@@ -184,6 +165,7 @@ public Map<Integer, String> getDisplayBtn() {
184165
btnList.put (FKey.KEY_TOUCH_DETECT, getString (R.string.main_touch_check));
185166
btnList.put (FKey.KEY_MQTT_TEST, getString (R.string.main_test_mqtt));
186167
btnList.put (FKey.KEY_WEBVIEW_TEST, getString (R.string.main_test_webview));
168+
btnList.put (FKey.KEY_POPWINDOW, getString(R.string.main_popwindow_toast));
187169
return btnList;
188170
}
189171

@@ -210,7 +192,6 @@ public void dismiss(boolean dismiss) {
210192
.setRemarks ("this is a remarks")
211193
.exeuNotify ( );
212194
} else {
213-
//去开启通知
214195
NotifyUtils.toOpenNotify ( );
215196
}
216197
Handler handler = new Handler ( );
@@ -231,19 +212,16 @@ public void run() {
231212
NotifyUtils.closeNotify ( );
232213
break;
233214
case FKey.KEY_SYS_DIALOG_SHOW:
234-
GlobalDialogUtils.getInstance ( ).show ("hello world");
215+
GlobalDialogUtils.getInstance ( ).show (getString(R.string.app_name));
235216
break;
236217
case FKey.KEY_SYS_DIALOG_CLOSE:
237218
GlobalDialogUtils.getInstance ( ).dismiss ( );
238219
break;
239220
case FKey.KEY_TOAST:
240-
ShellUtils.CommandResult commandResult = ShellUtils.execCommand ("am force-stop " +
241-
"com.face.regularservice", true);
242-
KLog.d ("result=" + commandResult.result + ",errMeg=" + commandResult.errorMsg);
243-
ToastUtils.showShort ("Hello Worold!");
221+
ToastUtils.showShort (getString(R.string.app_name));
244222
break;
245223
case FKey.KEY_TOAST_BG:
246-
ToastUtils.success ("Hello Worold!");
224+
ToastUtils.success (getString(R.string.app_name));
247225
break;
248226
case FKey.KEY_ERR_ANR:
249227
stopService (new Intent (this, MyService.class));
@@ -267,7 +245,7 @@ public void deviceInfo(String action, String path, boolean isConn) {
267245
UsbHubTools.getInstance ( ).unRegisterReceiver ( );
268246
break;
269247
case FKey.KEY_JXL_OPEN:
270-
ToastUtils.info ("请查看日志确定读取结果");
248+
ToastUtils.info (getString(R.string.main_to_search_jxl));
271249
TPoolUtils.newInstance ( ).addExecuteTask (new Runnable ( ) {
272250
@Override
273251
public void run() {
@@ -290,10 +268,10 @@ public void run() {
290268
case FKey.KEY_JXL_EXPORT:
291269
//第一种 jxl.jar导出
292270
JXLExcelUtils.exportExcel ( );
293-
ToastUtils.success ("export successful!");
271+
ToastUtils.success (getString(R.string.main_export_succ));
294272
break;
295273
case FKey.KEY_POI_OPEN:
296-
ToastUtils.info ("请查看日志确定读取结果");
274+
ToastUtils.info (getString(R.string.main_to_search_jxl));
297275
TPoolUtils.newInstance ( ).addExecuteTask (new Runnable ( ) {
298276
@Override
299277
public void run() {
@@ -314,7 +292,7 @@ public void run() {
314292
});
315293
break;
316294
case FKey.KEY_POI_EXPORT:
317-
ToastUtils.info ("请查看日志确定导出结果");
295+
ToastUtils.info (getString(R.string.main_to_search_jxl));
318296
TPoolUtils.newInstance ( ).addExecuteTask (new Runnable ( ) {
319297
@Override
320298
public void run() {
@@ -328,15 +306,15 @@ public void run() {
328306
Intent intent = new Intent (Intent.ACTION_GET_CONTENT);
329307
intent.setType ("*/*");
330308
intent.addCategory (Intent.CATEGORY_OPENABLE);
331-
startActivityForResult (Intent.createChooser (intent, "请选择文件"), FILE_SELECT_CODE);
309+
startActivityForResult (Intent.createChooser (intent, getString(R.string.main_select_file)), FILE_SELECT_CODE);
332310
break;
333311
case FKey.KEY_ASSETS:
334312
try {
335313
InputStream input = this.getAssets ( ).open ("table.xls");
336314
if (input != null) {
337-
ToastUtils.success ("found table.xls");
315+
ToastUtils.success (getString(R.string.main_found_table_succ));
338316
} else {
339-
ToastUtils.success ("not found table.xls");
317+
ToastUtils.success (getString(R.string.main_not_found_table_failed));
340318
}
341319
} catch (Exception e) {
342320
e.printStackTrace ( );
@@ -346,7 +324,7 @@ public void run() {
346324
case FKey.KEY_IP_SET_DHCP:
347325
CommonValue commonValue2 = FEthTools.setEthDhcp ( );
348326
if (commonValue2 == CommonValue.EXEU_COMPLETE) {
349-
ToastUtils.success ("动态IP设置成功!");
327+
ToastUtils.success (getString(R.string.main_set_dhcp_succ));
350328
} else {
351329
ToastUtils.error ("动态IP设置失败!errMeg=" + commonValue2.getRemarks ( ));
352330
}
@@ -355,17 +333,17 @@ public void run() {
355333
CommonValue commonValue = FEthTools.setStaticIp (new IpConfigInfo ("192.168.1.155",
356334
"8.8.8.8", "8.8.4.4", "192.168.1.1", "255.255.255.0"));
357335
if (commonValue == CommonValue.EXEU_COMPLETE) {
358-
ToastUtils.success ("静态IP设置成功!");
336+
ToastUtils.success (getString(R.string.main_set_static_succ));
359337
} else {
360338
ToastUtils.error ("静态IP设置失败!errMeg=" + commonValue.getRemarks ( ));
361339
}
362340
break;
363341
case FKey.KEY_SCREENSHOT:
364342
String imgPath = FScreentTools.takeScreenshot ("/sdcard/");
365343
if (imgPath != null && !imgPath.equals ("")) {
366-
ToastUtils.success ("截屏成功,位置:/sdcard/目录下");
344+
ToastUtils.success (getString(R.string.main_screenshot_succ_toast));
367345
} else {
368-
ToastUtils.error ("截屏失败!");
346+
ToastUtils.error (getString(R.string.main_screenshot_failed));
369347
}
370348
break;
371349
case FKey.KEY_CRASH:
@@ -449,6 +427,11 @@ public void run() {
449427
case FKey.KEY_WEBVIEW_TEST:
450428
startAty (WebViewAty.class);
451429
break;
430+
case FKey.KEY_POPWINDOW:
431+
PopupWindowTools bubblePopupWindow = new PopupWindowTools(MainActivity.this);
432+
bubblePopupWindow.setBubbleText("这是一条气泡消息");
433+
bubblePopupWindow.show(customButtonGridView.getSelectButton(), Gravity.TOP);//view的上部展示
434+
break;
452435
}
453436
}
454437

@@ -457,7 +440,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
457440
super.onActivityResult (requestCode, resultCode, data);
458441
if (data == null) {
459442
// 用户未选择任何文件,直接返回
460-
ToastUtils.error ("未选择任何文件!");
443+
ToastUtils.error (getString(R.string.main_no_files_were_selected));
461444
return;
462445
}
463446
if (requestCode == FILE_SELECT_CODE) {

app/src/main/java/com/ichtj/basetools/base/BaseActivity.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,16 @@ protected void requestPermission(){
3939
}).subscribe(new Consumer<Boolean>() {
4040
@Override
4141
public void accept(Boolean granted) throws Exception {
42-
if (granted) { // Always true pre-M
43-
// I can control the camera now
42+
if (granted) {
4443
ToastUtils.success("已通过权限");
4544
} else {
46-
// Oups permission denied
4745
ToastUtils.error("未通过权限");
4846
}
4947
}
5048
});
5149
}
5250

5351
protected void setStatusBar() {
54-
//for new api versions.
5552
View decorView = getWindow().getDecorView();
5653
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
5754
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
@@ -61,7 +58,6 @@ protected void setStatusBar() {
6158
@Override
6259
protected void onDestroy() {
6360
super.onDestroy();
64-
//KLog.d(TAG,"onDestroy");
6561
}
6662

6763
protected void startAty(Class classes){

app/src/main/java/com/ichtj/basetools/util/CustomButtonGridView.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class CustomButtonGridView extends ScrollView {
1818
private Map<Integer, String> btnMap;
1919
private int numColumns = 2; // 默认每列显示2个按钮
2020
private OnButtonClickListener onButtonClickListener;
21+
private Button selectBtn;
2122

2223
public CustomButtonGridView(Context context) {
2324
super(context);
@@ -104,6 +105,7 @@ private Button createButton(String text, final int position) {
104105
button.setOnClickListener(new OnClickListener() {
105106
@Override
106107
public void onClick(View v) {
108+
selectBtn=button;
107109
if (onButtonClickListener != null) {
108110
onButtonClickListener.onButtonClick(position, btnMap.get(position));
109111
}
@@ -112,6 +114,10 @@ public void onClick(View v) {
112114
return button;
113115
}
114116

117+
public Button getSelectButton(){
118+
return selectBtn;
119+
}
120+
115121
private int calculateTextSize(int numColumns) {
116122
// 根据列数动态计算文字大小,这里仅提供一个简单的示例,你可以根据实际需求调整逻辑
117123
switch (numColumns) {

app/src/main/java/com/ichtj/basetools/util/FKey.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,5 @@ public class FKey {
5858
public static final int KEY_TOUCH_DETECT=54;//触摸检查
5959
public static final int KEY_MQTT_TEST=55;//Mqtt测试
6060
public static final int KEY_WEBVIEW_TEST=56;//WebView测试
61+
public static final int KEY_POPWINDOW=57;//气泡提示
6162
}
2.27 KB
Loading
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<com.ichtj.basetools.util.CustomButtonGridView
3+
xmlns:android="http://schemas.android.com/apk/res/android"
34
android:orientation="vertical"
5+
android:id="@+id/customButtonGridView"
46
android:layout_width="match_parent"
5-
android:layout_height="match_parent">
6-
<com.ichtj.basetools.util.CustomButtonGridView
7-
android:id="@+id/customButtonGridView"
8-
android:layout_width="match_parent"
9-
android:layout_height="match_parent" />
10-
</LinearLayout>
7+
android:layout_height="match_parent" />

app/src/main/res/values-zh-rCN/strings.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,15 @@
9797
<string name="main_close_usb_listener">解除usb设备监听注册</string>
9898
<string name="switch_left_audio">切换左声道</string>
9999
<string name="switch_right_audio">切换右声道</string>
100+
<string name="main_to_search_jxl">请查看日志确定读取结果</string>
101+
<string name="main_export_succ">export successful!</string>
102+
<string name="main_set_dhcp_succ">动态IP设置成功!</string>
103+
<string name="main_set_static_succ">静态IP设置成功!</string>
104+
<string name="main_screenshot_failed">截屏失败!</string>
105+
<string name="main_no_files_were_selected">未选择任何文件!</string>
106+
<string name="main_select_file">请选择文件</string>
107+
<string name="main_found_table_succ">found table.xls</string>
108+
<string name="main_not_found_table_failed">not found table.xls</string>
109+
<string name="main_screenshot_succ_toast">截屏成功,位置:/sdcard/目录下</string>
110+
<string name="main_popwindow_toast">气泡提示</string>
100111
</resources>

app/src/main/res/values/colors.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
<color name="ichtj_test">#767876</color>
1212
<color name="ichtj_test1">#0000FB</color>
1313

14-
1514
<color name="white">#FFFFFF</color>
1615
<color name="org">#e17808</color>
1716
<color name="black">#111010</color>

app/src/main/res/values/strings.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,17 @@
9999
<string name="main_close_usb_listener">解除usb设备监听注册</string>
100100
<string name="switch_left_audio">切换左声道</string>
101101
<string name="switch_right_audio">切换右声道</string>
102+
<string name="main_to_search_jxl">请查看日志确定读取结果</string>
103+
<string name="main_export_succ">export successful!</string>
104+
<string name="main_set_dhcp_succ">动态IP设置成功!</string>
105+
<string name="main_set_static_succ">静态IP设置成功!</string>
106+
<string name="main_screenshot_failed">截屏失败!</string>
107+
<string name="main_no_files_were_selected">未选择任何文件!</string>
108+
<string name="main_select_file">请选择文件</string>
109+
<string name="main_found_table_succ">found table.xls</string>
110+
<string name="main_not_found_table_failed">not found table.xls</string>
111+
<string name="main_screenshot_succ_toast">截屏成功,位置:/sdcard/目录下</string>
112+
<string name="main_popwindow_toast">气泡提示</string>
102113
<declare-styleable name="TopTitleView">
103114
<attr name="name" format="string"></attr>
104115
<attr name="rightName" format="string"></attr>

0 commit comments

Comments
 (0)