Compare commits
584 Commits
6.4.6
...
dev_blind_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db165cc05d | ||
|
|
b0008405e2 | ||
|
|
9c32c6af25 | ||
| baa2ec127f | |||
|
|
c3b5f17f44 | ||
|
|
c28a91b128 | ||
|
|
f064864d76 | ||
|
|
66290323d8 | ||
| 9526a14ca2 | |||
| 27715cda2c | |||
| 65bfc77376 | |||
| 99618a2779 | |||
| 1b637b7a77 | |||
| 6ee678bd74 | |||
|
|
b4dc035a1b | ||
|
|
1f7aef91a8 | ||
|
|
3e72b4a9eb | ||
|
|
4f103dadc9 | ||
|
|
055d002a34 | ||
|
|
426f7450a2 | ||
| 73a71dabc6 | |||
| 435dc1c4fb | |||
|
|
f347d283a0 | ||
| a6754eb503 | |||
| 070312ff53 | |||
| bd8cf94171 | |||
| 98bb182d56 | |||
| 3454b6f924 | |||
| 5af061c26f | |||
| 83a240fcb8 | |||
| 17decb63fa | |||
|
|
dbe861c608 | ||
| c1c8921f59 | |||
| 82b3b23470 | |||
|
|
e28c6228ad | ||
| df0f5f31e0 | |||
|
|
2a6af7c165 | ||
|
|
8611817a6a | ||
|
|
e4c48f948d | ||
| 46e37b14e4 | |||
| 0d86d142c9 | |||
|
|
96cbadac2c | ||
|
|
f8356b1283 | ||
|
|
576d39461a | ||
|
|
8410439a90 | ||
|
|
73b075b2a7 | ||
| a6b5c102d2 | |||
|
|
229c8e72cf | ||
|
|
f99bef4ac8 | ||
| b5673025be | |||
| f0ddd98942 | |||
|
|
e67287e7d3 | ||
|
|
4b8dd546ce | ||
|
|
319a23bf2d | ||
| 611f1da9b8 | |||
| 1953b5a776 | |||
|
|
43deb95435 | ||
| 5a9535e81d | |||
|
|
097528f97a | ||
| abe71808fb | |||
| 59508a45cb | |||
|
|
11bc23418e | ||
|
|
5a5164f72b | ||
|
|
381ca84525 | ||
| 79a709a76f | |||
|
|
5dcdd3fc5f | ||
| 1dce512d27 | |||
| 840129651d | |||
| 59c19d996e | |||
| 703bafa013 | |||
|
|
9e6e25fb9e | ||
| bddf8c71ae | |||
| 47c3282861 | |||
| 181ff4274c | |||
|
|
dc5633bcb9 | ||
| 369f3f2cae | |||
|
|
293c9dcf9e | ||
|
|
d0e2278df7 | ||
| f913248fa1 | |||
|
|
098ef7aa36 | ||
|
|
bfbbe54308 | ||
|
|
32e3584fef | ||
|
|
90c7483dbc | ||
|
|
e38262826d | ||
|
|
cbb1531356 | ||
|
|
0ed37aee11 | ||
|
|
c23ed7defb | ||
|
|
06e077146b | ||
| 10588e4810 | |||
| 4b7469d9d4 | |||
|
|
eb21a17475 | ||
|
|
974546697b | ||
|
|
8507fc1bb7 | ||
|
|
bb4f8bb98e | ||
| 4a4cc179bf | |||
|
|
db8dc2a781 | ||
|
|
4ae1b12be0 | ||
|
|
06289b44d9 | ||
|
|
32fa77be39 | ||
|
|
9869a2376c | ||
| af4176bcb7 | |||
| 499b73295d | |||
| bec764a329 | |||
| 58c988a83a | |||
|
|
0506d82165 | ||
| cfc72f7441 | |||
|
|
b305ba925b | ||
| e99b18eec6 | |||
|
|
38b080f082 | ||
|
|
605f10d0ac | ||
|
|
f7480c6e43 | ||
| ceef0f1e57 | |||
|
|
19c0c8c6e7 | ||
| d50c56bbb2 | |||
| 8ce65ced30 | |||
|
|
80e93f9981 | ||
| a34e90753c | |||
| a53da7a2b8 | |||
|
|
bdd6124300 | ||
| 47c3f59f74 | |||
| 76f94895fe | |||
| e0eea59539 | |||
|
|
917d237b6d | ||
| 508f1a52ae | |||
|
|
4429dc7a4c | ||
|
|
296a6d24bb | ||
|
|
6c19f0efc4 | ||
|
|
6f7a9a9310 | ||
| 66e011f2d3 | |||
|
|
9e7909ec70 | ||
|
|
8ae58e9c14 | ||
|
|
2ce527cee8 | ||
|
|
28ef982b74 | ||
| b44524b25f | |||
| f76d649233 | |||
| 90fee86c19 | |||
| 9707898af9 | |||
|
|
9c3fbe0506 | ||
| a8178c51a0 | |||
|
|
2b62d018b5 | ||
|
|
f7cf72f15f | ||
|
|
b3d4d2b8f9 | ||
|
|
8cbbd4015f | ||
| 51bf55fdeb | |||
|
|
18a5f46133 | ||
| f201e0978e | |||
|
|
63c2891650 | ||
| af164f549f | |||
| 33034ce4d6 | |||
|
|
9d38ff7c8f | ||
| 16caf60f77 | |||
| f3bca96ee8 | |||
|
|
b0ed276e23 | ||
| 906ff6cfa6 | |||
| 6427311cec | |||
| 181f081706 | |||
| 14490cacfa | |||
| 6ff83dabff | |||
| a6d81ef666 | |||
| 11679a62a0 | |||
| 36410ddcaa | |||
|
|
3bf6518e25 | ||
|
|
028f2794bf | ||
|
|
1c198a44cf | ||
| 1fba3bd53e | |||
| fd15428ed9 | |||
|
|
a5fd14cc0e | ||
|
|
3c7a2d3964 | ||
|
|
325d7254f0 | ||
|
|
153d5ff159 | ||
| a86cf97d74 | |||
| 192587f758 | |||
|
|
5697a19f91 | ||
|
|
1fa1874241 | ||
| c43b581157 | |||
| ba5a80fb1d | |||
| 73c8db8fb4 | |||
|
|
f55e1b9c05 | ||
|
|
e5a07613aa | ||
| ed46eb30a8 | |||
|
|
971fceebcd | ||
|
|
329bd63229 | ||
|
|
d320373b07 | ||
| 326bb5ae7f | |||
|
|
95c39cca9d | ||
|
|
849677e50e | ||
| c4ae047a4b | |||
| 5657d5a00b | |||
| 4b6b477351 | |||
| d035018ada | |||
| e301e7bfce | |||
| 97ad5c2d92 | |||
| 43e7713f6b | |||
|
|
cfce501d45 | ||
|
|
b2f35fdc16 | ||
| 87afe9297d | |||
| 48f1d42739 | |||
| 9eed92302d | |||
|
|
f12f6a9130 | ||
| ef757a8adc | |||
| 0177a1314d | |||
| 26cb58463a | |||
|
|
d1d8054c01 | ||
|
|
2db89365bb | ||
|
|
87ba382e81 | ||
|
|
55290a71aa | ||
|
|
5095de3c43 | ||
|
|
70a91fedf3 | ||
| ef8f87d100 | |||
| 6d83c6f8ae | |||
| ce2048b9a5 | |||
| c22da60b82 | |||
| c78bb79633 | |||
| 3a980d22fd | |||
| 2b56eff39a | |||
|
|
9472ccf6c8 | ||
|
|
59d384a81c | ||
|
|
c02f24fdcd | ||
|
|
86c5334ab4 | ||
| 6ef8c3778b | |||
| 0c6eac2936 | |||
|
|
62e2b93bd5 | ||
|
|
d80bc3bd27 | ||
|
|
085f19c3ca | ||
| f4d23c57df | |||
|
|
95429402c7 | ||
|
|
1da79d6f48 | ||
|
|
926bd1a22e | ||
|
|
554bfa137a | ||
| 9e5a61f66c | |||
|
|
be608fd90b | ||
| c9e53b4dfd | |||
| c2aba5da4b | |||
|
|
420118b652 | ||
|
|
076008ce89 | ||
|
|
8455d1253c | ||
| 07f8f46f1f | |||
|
|
8b46c57482 | ||
|
|
db834caf00 | ||
| 5c1eef1419 | |||
| fe29d307a9 | |||
|
|
b8fea6366c | ||
| 06dddb5273 | |||
| d774296db9 | |||
|
|
077cc7fd80 | ||
|
|
fdf9d0aea2 | ||
| 92c38dc0dc | |||
|
|
d8c4b9dd04 | ||
|
|
342b2e9139 | ||
| 88ea48b6ca | |||
|
|
0726c5dc1c | ||
|
|
046adc9340 | ||
|
|
46fa2419d3 | ||
|
|
5c5114f808 | ||
|
|
7f2f7ea4d8 | ||
| a89c441555 | |||
| a1762bc791 | |||
| 34432e5ccf | |||
|
|
46f20c9663 | ||
|
|
e0753ebb29 | ||
|
|
d7d24904bf | ||
|
|
abbc2fc4ee | ||
| 07f0f39978 | |||
| 8d932a09e1 | |||
|
|
34c855fc8f | ||
|
|
824d431a63 | ||
| af63c4c8ac | |||
|
|
16ba71493e | ||
| 94f8ee7f3b | |||
| e7c97f2b55 | |||
|
|
a7e6efa0dc | ||
|
|
ea9807dcdc | ||
| fdd30aa52a | |||
|
|
ba23f720eb | ||
| 05ede89cba | |||
| d6eddeb130 | |||
| bf4710470f | |||
| 5d2a246916 | |||
| cca8f43f61 | |||
|
|
1d66a9b7fb | ||
|
|
c1c4a7a38b | ||
|
|
b8a91a85e4 | ||
|
|
7cb7258210 | ||
|
|
8d823f7a07 | ||
| 6d458d0c7f | |||
| eaed7e448b | |||
| b2f779f58a | |||
| 79ded6bff4 | |||
|
|
d86e16c9f5 | ||
| f2cff3b93f | |||
|
|
e97a4e607c | ||
| 4d86317ec8 | |||
| d36ece4c54 | |||
| 11cf971514 | |||
| 60da453114 | |||
|
|
3d5ac05d36 | ||
| a50a7140fd | |||
|
|
d3268e57bc | ||
|
|
3549c25cca | ||
|
|
859f54b1e1 | ||
| 15b232f52a | |||
| 3c80038bef | |||
| a808cd13c0 | |||
| ce8088059a | |||
|
|
cd0067d77b | ||
|
|
894e264fb3 | ||
| 5dd5b2e0ea | |||
| d14939c893 | |||
|
|
8f58c485c8 | ||
|
|
11e809a978 | ||
|
|
20aa6002f8 | ||
|
|
ffcb0e8790 | ||
|
|
3de7160538 | ||
|
|
1e595ec526 | ||
| 344bbcdfc8 | |||
| c1aeaa0e1b | |||
| e108494bd5 | |||
| bc0e698a77 | |||
| b82c87d5d6 | |||
| 80fe5271f6 | |||
| 944d703e36 | |||
| 911869ed9f | |||
| 543336af99 | |||
| 5d7cff6707 | |||
| 1bbab7ac9e | |||
|
|
16592aaecb | ||
|
|
3de9ff57c3 | ||
| e932238fc2 | |||
|
|
df436bbe1e | ||
|
|
49bd97f646 | ||
| 731f941298 | |||
|
|
c21df55c06 | ||
| 9acbc60db2 | |||
| 5f2dda021a | |||
| 1244010c3d | |||
| 7226d54277 | |||
| eaafcdd444 | |||
| 9f9c02b7e7 | |||
|
|
7bffdda6b9 | ||
| 50d01ccd92 | |||
|
|
420573736d | ||
|
|
aca98cb7e6 | ||
|
|
f26fb83fec | ||
| 1ad9effe91 | |||
| 418d306d72 | |||
| 3606815a41 | |||
| 518e57ee44 | |||
| 872245c9c9 | |||
| 749f756d58 | |||
|
|
a22dfb6214 | ||
|
|
652e569e2b | ||
| d480986485 | |||
| 2e6efc69e8 | |||
| e2761049e5 | |||
| ee6a4288b0 | |||
| 7070f5c1b4 | |||
| cc4cc2f746 | |||
| 93e2a8af02 | |||
| 207811c41d | |||
|
|
8730a6396f | ||
| 05ff51bd48 | |||
| 1904eeb3ba | |||
|
|
70126171c6 | ||
|
|
ee084d6f33 | ||
| bacf4fd32f | |||
|
|
eaae58db31 | ||
|
|
13146595bf | ||
| b3083cdd18 | |||
| cf85870810 | |||
| 182e46799a | |||
| 27bd65d3da | |||
|
|
9fcc04cef2 | ||
| a1f07b8c20 | |||
|
|
65efa88d4a | ||
| 01a2d66585 | |||
| 098e9bf6ba | |||
| ddf56963bb | |||
|
|
eadcaf826b | ||
|
|
36248eaeef | ||
| 04496c3888 | |||
| 494aa6b52d | |||
|
|
4bb51506e3 | ||
|
|
112bec58df | ||
| 0b7a3cc50e | |||
| 9f517199fe | |||
| 2393a53466 | |||
| 80993c7d2d | |||
| 8c0a23d39a | |||
| a0949f0903 | |||
|
|
42052b7465 | ||
| a37a92e211 | |||
|
|
c3ddc62b95 | ||
|
|
0a3409f98a | ||
|
|
d26a687385 | ||
| 2f413e260e | |||
| 6fcb194995 | |||
| 7cea6b4f8d | |||
| 16d02c6936 | |||
| 289c93d824 | |||
| 8f99d68b6f | |||
| e0d7137727 | |||
|
|
7a9ed22ec9 | ||
|
|
af58ec755d | ||
| 4ad2020b57 | |||
| 1db24dae4b | |||
| 76055543c3 | |||
| a1d95d6a94 | |||
| 2143e3eb77 | |||
|
|
4a0901ea93 | ||
|
|
488bee514d | ||
|
|
bafea09e44 | ||
|
|
54923304dc | ||
|
|
8b357233c2 | ||
| 06b5f99930 | |||
| 0b5598346e | |||
|
|
d81e6b9f04 | ||
| 87e3dddac5 | |||
| 55f3ac577b | |||
| 0c053a028e | |||
| df36529619 | |||
| 7555510d94 | |||
|
|
2e986db686 | ||
| 660853d5be | |||
| 956bef4b90 | |||
|
|
43c22fca7c | ||
| 5db84c1e61 | |||
| 00c3e0cb77 | |||
| f4b6c46075 | |||
| 181bb5b445 | |||
|
|
90f58054fa | ||
| 137dbc72d8 | |||
|
|
a7cef3c6f8 | ||
| 339d460c0f | |||
| c8ba78f39b | |||
|
|
d31af73479 | ||
|
|
874800c19d | ||
|
|
404d45893f | ||
| ed6e95f380 | |||
| c4cfa0becd | |||
|
|
a069562bbe | ||
|
|
9158424a25 | ||
| 7488143037 | |||
| 99938f6ed6 | |||
|
|
1bde99f6c9 | ||
|
|
e3a9a037ba | ||
| b1d342f791 | |||
| 7639a70887 | |||
| f690cf0b62 | |||
| 4dcb12eb4f | |||
|
|
af5d8dbf19 | ||
| 9cd1638d55 | |||
| dd1570c10e | |||
| 3af7ca5d94 | |||
| 2d2cc21e15 | |||
| f872029c9d | |||
| 6198489dd4 | |||
| cce8e43c24 | |||
| cae0599307 | |||
|
|
2c6e88500a | ||
| efc20c644a | |||
| bdc43baaa8 | |||
| dc529b6640 | |||
|
|
488cc192b2 | ||
|
|
269f6c64a9 | ||
|
|
51186169ca | ||
|
|
325e57d1d5 | ||
| 862ec98fa3 | |||
| b827f7bfa6 | |||
|
|
786dfb54a3 | ||
|
|
a373738d70 | ||
| 6929276512 | |||
| 64c33f5709 | |||
| 7330e1ae2b | |||
| f359c9994d | |||
| d49b60a1e1 | |||
|
|
ee2cebdc41 | ||
| 1407ecc2f2 | |||
|
|
606fc64262 | ||
| a5516ebfb3 | |||
| dd7214a945 | |||
| a20571e050 | |||
| 8f7adb3079 | |||
| adcf005e62 | |||
|
|
8cff0195ad | ||
| 98940d7554 | |||
| 4a8c29365c | |||
| b641a65117 | |||
|
|
d747407d6b | ||
| f302155912 | |||
|
|
3d60814538 | ||
| 1293368d59 | |||
|
|
d1e1f5f4e8 | ||
|
|
b804c20ba0 | ||
| e030db04b9 | |||
| 0fcadde670 | |||
| e522d04ead | |||
|
|
ce0061e86e | ||
| 7ed4043a1f | |||
|
|
0b97d7bbaf | ||
| 5317f6d88f | |||
| 092b2ac519 | |||
| c9725875b3 | |||
| 6c33ac15f8 | |||
| af91783b9f | |||
| 5755aa5232 | |||
| ddc246e11c | |||
|
|
869ad9adf7 | ||
| 5356d91fef | |||
|
|
f024283e80 | ||
| 49167f332d | |||
| ea69f4bcb7 | |||
|
|
eaf973b927 | ||
| fdbf5aee04 | |||
| e4c490577d | |||
|
|
b5247df69b | ||
| d39ee17cc4 | |||
| 07da7acacd | |||
|
|
28add09f32 | ||
|
|
9d69610713 | ||
|
|
32969a58db | ||
| b188613035 | |||
| 308d5acc21 | |||
|
|
284b9784d6 | ||
| 26f02065df | |||
| eef852c283 | |||
| e0287899f8 | |||
| ae020b105a | |||
| 62c3cdcb30 | |||
| 01c657fdcb | |||
| 3a75e24601 | |||
| e28c393f88 | |||
| bfe8034b24 | |||
| c056dfe246 | |||
| a7cf09de1e | |||
| 7c4c22d69e | |||
| 3747f214b1 | |||
|
|
503fb0d7f1 | ||
|
|
6b0500b5ff | ||
| ae8c6cc23d | |||
| ad028c69d0 | |||
| 03b3398bce | |||
| 4a84283000 | |||
| c49c560e8d | |||
| 8d3ac7761f | |||
| a1d9b1f75b | |||
|
|
afed0c8833 | ||
| 415ed2fc9b | |||
| 8e45e17768 | |||
|
|
576a30d1be | ||
|
|
e380c8dcbc | ||
| 5e9f23286e | |||
| 1bbc78fb32 | |||
| b56368412c | |||
| 4ad75a11a8 | |||
| 3fa259c5b9 | |||
|
|
4cd4939c58 | ||
| b20141de02 | |||
| 9eff246f06 | |||
| 285a33ff9a | |||
|
|
7ebd935eba | ||
| f62a093092 | |||
| 28b4a36800 | |||
| ec59fce097 | |||
| e134ef8d54 | |||
| 29ddc68870 | |||
| 9ead9a6fb8 | |||
| 2a2672587c | |||
| 98122c25d8 | |||
| 84c89d7530 | |||
| 4268816539 | |||
| 721172d48a | |||
| 3e7942dbd4 | |||
| 17d18eff98 | |||
| 0d422177ac | |||
| 6336eab32a | |||
| f91a3f3fc1 | |||
| a489a6d00d | |||
| 8d8cff8d1b | |||
|
|
5f487f74bd | ||
| ed6b531b8d | |||
| e0b69be2d4 | |||
| 9b17c1225a | |||
| 8a03b194b2 | |||
| 4a637d0a69 |
@@ -299,7 +299,7 @@
|
|||||||
<string name="beautify_hip_slim">Hip</string>
|
<string name="beautify_hip_slim">Hip</string>
|
||||||
<string name="beautify_head_slim">Head shrink</string>
|
<string name="beautify_head_slim">Head shrink</string>
|
||||||
<string name="beautify_leg_thin_slim">Thin leg</string>
|
<string name="beautify_leg_thin_slim">Thin leg</string>
|
||||||
<string name="toast_not_detect_body">No body tracking</string>
|
<string name="toast_not_detect_body">No message tracking</string>
|
||||||
<string name="pta_human_full_body">Body driver</string>
|
<string name="pta_human_full_body">Body driver</string>
|
||||||
<string name="pta_human_half_body">Bust driver</string>
|
<string name="pta_human_half_body">Bust driver</string>
|
||||||
|
|
||||||
|
|||||||
1
Share/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/build
|
||||||
73
Share/build.gradle
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
apply plugin: 'com.android.library'
|
||||||
|
apply plugin: 'img-optimizer'
|
||||||
|
apply plugin: 'kotlin-android'
|
||||||
|
apply plugin: 'kotlin-android-extensions'
|
||||||
|
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||||
|
buildToolsVersion rootProject.ext.android.buildToolsVersion
|
||||||
|
packagingOptions {
|
||||||
|
pickFirst "lib/armeabi/libyuvutils.so"
|
||||||
|
pickFirst "lib/arm64-v8a/libyuvutils.so"
|
||||||
|
pickFirst "lib/armeabi-v7a/libyuvutils.so"
|
||||||
|
pickFirst "lib/armeabi/libyuvtools.so"
|
||||||
|
pickFirst "lib/arm64-v8a/libyuvtools.so"
|
||||||
|
pickFirst "lib/armeabi-v7a/libyuvtools.so"
|
||||||
|
exclude "lib/arm64-v8a/libmmcv_api_handgesture.so"
|
||||||
|
exclude "lib/arm64-v8a/libmmcv_api_express.so"
|
||||||
|
exclude "lib/arm64-v8a/libMediaEncoder.so"
|
||||||
|
exclude "lib/arm64-v8a/libarcore_sdk_c.so"
|
||||||
|
exclude "lib/arm64-v8a/libmediadecoder.so"
|
||||||
|
exclude "lib/arm64-v8a/libMediaMuxer.so"
|
||||||
|
exclude "lib/arm64-v8a/libarcore_sdk_jni.so"
|
||||||
|
exclude "lib/arm64-v8a/libMediaUtils.so"
|
||||||
|
exclude "lib/arm64-v8a/libcosmosffmpeg.so"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||||
|
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||||
|
versionCode rootProject.ext.android.versionCode
|
||||||
|
versionName rootProject.ext.android.versionName
|
||||||
|
manifestPlaceholders = rootProject.ext.manifestPlaceholders
|
||||||
|
ndk {
|
||||||
|
abiFilters "armeabi-v7a", "arm64-v8a"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
aaptOptions {
|
||||||
|
cruncherEnabled = false
|
||||||
|
useNewCruncher = false
|
||||||
|
}
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
minifyEnabled false
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
flatDir {
|
||||||
|
dirs 'libs', '../libs'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
implementation rootProject.ext.dependencies["appcompat-androidx"]
|
||||||
|
implementation rootProject.ext.dependencies["recyclerview-androidx"]
|
||||||
|
//common
|
||||||
|
implementation project(path: ':common')
|
||||||
|
//Twitter
|
||||||
|
implementation 'com.twitter.sdk.android:twitter:3.1.1'
|
||||||
|
//facebook & Messenger
|
||||||
|
implementation 'com.facebook.android:facebook-share:15.2.0'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
0
Share/consumer-rules.pro
Normal file
21
Share/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Add project specific ProGuard rules here.
|
||||||
|
# You can control the set of applied configuration files using the
|
||||||
|
# proguardFiles setting in build.gradle.
|
||||||
|
#
|
||||||
|
# For more details, see
|
||||||
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||||
|
|
||||||
|
# If your project uses WebView with JS, uncomment the following
|
||||||
|
# and specify the fully qualified class name to the JavaScript interface
|
||||||
|
# class:
|
||||||
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||||
|
# public *;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Uncomment this to preserve the line number information for
|
||||||
|
# debugging stack traces.
|
||||||
|
#-keepattributes SourceFile,LineNumberTable
|
||||||
|
|
||||||
|
# If you keep the line number information, uncomment this to
|
||||||
|
# hide the original source file name.
|
||||||
|
#-renamesourcefileattribute SourceFile
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.yunbao.share;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instrumented test, which will execute on an Android device.
|
||||||
|
*
|
||||||
|
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||||
|
*/
|
||||||
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class ExampleInstrumentedTest {
|
||||||
|
@Test
|
||||||
|
public void useAppContext() {
|
||||||
|
// Context of the app under test.
|
||||||
|
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||||
|
assertEquals("com.yunbao.share.test", appContext.getPackageName());
|
||||||
|
}
|
||||||
|
}
|
||||||
44
Share/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
package="com.pdlive.shayu">
|
||||||
|
|
||||||
|
<queries>
|
||||||
|
<package android:name="com.pdlive.shayu"/>
|
||||||
|
<package android:name="com.facebook.orca"/>
|
||||||
|
|
||||||
|
<package
|
||||||
|
android:name="com.facebook.composer" />
|
||||||
|
|
||||||
|
<package
|
||||||
|
android:name="com.facebook.katana" />
|
||||||
|
<package
|
||||||
|
android:name="com.facebook.messenger" />
|
||||||
|
<provider
|
||||||
|
android:authorities="com.facebook.katana.provider.PlatformProvider"
|
||||||
|
tools:ignore="ExportedContentProvider" />
|
||||||
|
|
||||||
|
</queries>
|
||||||
|
<application android:allowBackup="true">
|
||||||
|
<activity
|
||||||
|
android:name="com.facebook.FacebookActivity"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:screenOrientation="portrait" />
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="com.facebook.FacebookContentProvider"
|
||||||
|
android:authorities="com.facebook.app.FacebookContentProvider2011402032399020"
|
||||||
|
android:exported="true" />
|
||||||
|
<receiver
|
||||||
|
android:name="com.yunbao.share.receiver.TwitterResultReceiver"
|
||||||
|
android:exported="false">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS" />
|
||||||
|
<action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE" />
|
||||||
|
<action android:name="com.twitter.sdk.android.tweetcomposer.TWEET_COMPOSE_CANCEL" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
34
Share/src/main/java/com/yunbao/share/AbsShareInterface.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package com.yunbao.share;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.IntentFilter;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import androidx.core.content.FileProvider;
|
||||||
|
|
||||||
|
import com.twitter.sdk.android.tweetcomposer.TweetUploadService;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
import com.yunbao.share.receiver.TwitterResultReceiver;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public abstract class AbsShareInterface {
|
||||||
|
protected final Context mContext;
|
||||||
|
|
||||||
|
public AbsShareInterface(Context context) {
|
||||||
|
this.mContext = context;
|
||||||
|
IntentFilter filter = new IntentFilter(TweetUploadService.UPLOAD_SUCCESS);
|
||||||
|
filter.addAction(TweetUploadService.UPLOAD_FAILURE);
|
||||||
|
filter.addAction(TweetUploadService.TWEET_COMPOSE_CANCEL);
|
||||||
|
context.registerReceiver(new TwitterResultReceiver(), filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void share(ShareBuilder builder, ICallback callback);
|
||||||
|
|
||||||
|
public Uri fileToUri(File file){
|
||||||
|
return FileProvider.getUriForFile(mContext,
|
||||||
|
mContext.getPackageName() + ".fileprovider",
|
||||||
|
file
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
6
Share/src/main/java/com/yunbao/share/ICallback.java
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package com.yunbao.share;
|
||||||
|
|
||||||
|
public interface ICallback {
|
||||||
|
void onSuccess();
|
||||||
|
void onFailure();
|
||||||
|
}
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
package com.yunbao.share.adapters;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Environment;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.DrawableRes;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.pdlive.shayu.R;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
import com.yunbao.share.platform.FacebookShare;
|
||||||
|
import com.yunbao.share.platform.Instagram;
|
||||||
|
import com.yunbao.share.platform.Line;
|
||||||
|
import com.yunbao.share.platform.MessengerShare;
|
||||||
|
import com.yunbao.share.platform.TwitterShare;
|
||||||
|
import com.yunbao.share.platform.WhatsApp;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppViewHolder> {
|
||||||
|
private Context mContext;
|
||||||
|
private List<ShareBuilder> list;
|
||||||
|
|
||||||
|
public ShareAppAdapter(Context mContext) {
|
||||||
|
list = new ArrayList<>();
|
||||||
|
this.mContext = mContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(List<ShareBuilder> list) {
|
||||||
|
this.list = list;
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public AppViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
return new AppViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_share_app, parent, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull AppViewHolder holder, int position) {
|
||||||
|
ShareBuilder builder = list.get(position);
|
||||||
|
switch (builder.getType()) {
|
||||||
|
case ShareBuilder.APP_FACEBOOK:
|
||||||
|
holder.setData(builder, R.mipmap.icon_share_facebook, R.string.dialog_share_app_facebook);
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_LINE:
|
||||||
|
holder.setData(builder, R.mipmap.icon_share_line, R.string.dialog_share_app_line);
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_TWITTER:
|
||||||
|
holder.setData(builder, R.mipmap.icon_share_twitter, R.string.dialog_share_app_twitter);
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_WHATSAPP:
|
||||||
|
holder.setData(builder, R.mipmap.icon_share_whatsapp, R.string.dialog_share_app_whatsapp);
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_MESSENGER:
|
||||||
|
holder.setData(builder, R.mipmap.icon_share_messenger, R.string.dialog_share_app_messenger);
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_INSTAGRAM:
|
||||||
|
holder.setData(builder, R.mipmap.icon_share_instagram, R.string.dialog_share_app_instagram);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return list.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AppViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
ImageView icon;
|
||||||
|
TextView title;
|
||||||
|
|
||||||
|
public AppViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
icon = itemView.findViewById(R.id.share_app_icon);
|
||||||
|
title = itemView.findViewById(R.id.share_app_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(ShareBuilder bean, @DrawableRes int iconId, @StringRes int appName) {
|
||||||
|
icon.setImageResource(iconId);
|
||||||
|
title.setText(appName);
|
||||||
|
itemView.setOnClickListener(v -> {
|
||||||
|
switch (bean.getType()) {
|
||||||
|
case ShareBuilder.APP_FACEBOOK:
|
||||||
|
new FacebookShare(itemView.getContext()).share(bean, new ShareCallback());
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_LINE:
|
||||||
|
new Line(itemView.getContext()).share(bean, new ShareCallback());
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_TWITTER:
|
||||||
|
new TwitterShare(itemView.getContext()).share(bean, new ShareCallback());
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_WHATSAPP:
|
||||||
|
new WhatsApp(itemView.getContext()).share(bean, new ShareCallback());
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_MESSENGER:
|
||||||
|
new MessengerShare(itemView.getContext()).share(bean, new ShareCallback());
|
||||||
|
break;
|
||||||
|
case ShareBuilder.APP_INSTAGRAM:
|
||||||
|
new Instagram(itemView.getContext()).share(bean, new ShareCallback());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ShareCallback implements ICallback {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
140
Share/src/main/java/com/yunbao/share/bean/ShareBuilder.java
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
package com.yunbao.share.bean;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.yunbao.common.CommonAppConfig;
|
||||||
|
import com.yunbao.common.CommonAppContext;
|
||||||
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
public class ShareBuilder {
|
||||||
|
public static final int APP_FACEBOOK = 0;
|
||||||
|
public static final int APP_LINE = 1;
|
||||||
|
public static final int APP_TWITTER = 2;
|
||||||
|
public static final int APP_WHATSAPP = 3;
|
||||||
|
public static final int APP_MESSENGER = 4;
|
||||||
|
public static final int APP_INSTAGRAM = 5;
|
||||||
|
|
||||||
|
private String text;
|
||||||
|
private String link;
|
||||||
|
private File file;
|
||||||
|
private int type;
|
||||||
|
private String uid;
|
||||||
|
private String anchorId;
|
||||||
|
private String anchorName;
|
||||||
|
private String anchorAvatar;
|
||||||
|
|
||||||
|
public static String createLiveShareLink(String shareUid, String anchorId, String anchorName, String anchorAvatar) {
|
||||||
|
try {
|
||||||
|
return String.format(CommonAppConfig.HOST +
|
||||||
|
"/h5/activity/FriendInvitation/liveShare.html?user_id=%s&anchor_id=%s&anchor_name=%s&anchor_avatar=%s&isGoogle=%s",
|
||||||
|
shareUid,
|
||||||
|
anchorId,
|
||||||
|
URLEncoder.encode(anchorName, "UTF-8"),
|
||||||
|
URLEncoder.encode(anchorAvatar, "UTF-8"),
|
||||||
|
CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0"
|
||||||
|
) ;
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String createInviteLink(String shareUid) {
|
||||||
|
return String.format("https://www.pdlive.com/public/app/download/index.html?user_id=%s&isGoogle=%s",
|
||||||
|
shareUid,
|
||||||
|
CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ShareBuilder builder(int type) {
|
||||||
|
return new ShareBuilder(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ShareBuilder(int type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(String uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnchorId() {
|
||||||
|
return anchorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnchorId(String anchorId) {
|
||||||
|
this.anchorId = anchorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnchorName() {
|
||||||
|
return anchorName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnchorName(String anchorName) {
|
||||||
|
this.anchorName = anchorName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnchorAvatar() {
|
||||||
|
return anchorAvatar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnchorAvatar(String anchorAvatar) {
|
||||||
|
this.anchorAvatar = anchorAvatar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ShareBuilder setText(String text) {
|
||||||
|
this.text = text;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ShareBuilder setLink(String link) {
|
||||||
|
this.link = link;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ShareBuilder setFile(File file) {
|
||||||
|
this.file = file;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getText() {
|
||||||
|
if (StringUtil.isEmpty(text)) {
|
||||||
|
return getLink();
|
||||||
|
}
|
||||||
|
return text + "\n" + getLink();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLink() {
|
||||||
|
if (StringUtil.isEmpty(link)) {
|
||||||
|
link = createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
|
||||||
|
}
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
public File getFile() {
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ShareBuilder{" +
|
||||||
|
"text='" + text + '\'' +
|
||||||
|
", link='" + link + '\'' +
|
||||||
|
", file=" + file +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package com.yunbao.share.platform;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.facebook.CallbackManager;
|
||||||
|
import com.facebook.FacebookCallback;
|
||||||
|
import com.facebook.FacebookException;
|
||||||
|
import com.facebook.share.Sharer;
|
||||||
|
import com.facebook.share.model.ShareLinkContent;
|
||||||
|
import com.facebook.share.widget.ShareDialog;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
import com.yunbao.share.AbsShareInterface;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
|
||||||
|
public class FacebookShare extends AbsShareInterface {
|
||||||
|
public static CallbackManager callbackManager;
|
||||||
|
public FacebookShare(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void share(ShareBuilder builder, ICallback callback) {
|
||||||
|
callbackManager= CallbackManager.Factory.create();
|
||||||
|
ShareLinkContent content = new ShareLinkContent.Builder()
|
||||||
|
.setContentUrl(Uri.parse(builder.getLink()))
|
||||||
|
.build();
|
||||||
|
ShareDialog dialog=new ShareDialog((Activity) mContext);
|
||||||
|
dialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Sharer.Result result) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull FacebookException e) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialog.show(content);
|
||||||
|
}
|
||||||
|
}
|
||||||
27
Share/src/main/java/com/yunbao/share/platform/Instagram.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package com.yunbao.share.platform;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import com.yunbao.share.AbsShareInterface;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
|
||||||
|
public class Instagram extends AbsShareInterface {
|
||||||
|
public Instagram(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void share(ShareBuilder builder, ICallback callback) {
|
||||||
|
String type = "image/*";
|
||||||
|
Intent share = new Intent(Intent.ACTION_SEND);
|
||||||
|
Uri uri = fileToUri(builder.getFile());
|
||||||
|
share.setType(type);
|
||||||
|
share.putExtra(Intent.EXTRA_STREAM, uri);
|
||||||
|
share.setPackage("com.instagram.android");
|
||||||
|
mContext.startActivity(Intent.createChooser(share, "Share to"));
|
||||||
|
callback.onSuccess();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
Share/src/main/java/com/yunbao/share/platform/Line.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package com.yunbao.share.platform;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import com.yunbao.share.AbsShareInterface;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
|
||||||
|
public class Line extends AbsShareInterface {
|
||||||
|
|
||||||
|
public Line(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void share(ShareBuilder builder, ICallback callback) {
|
||||||
|
try {
|
||||||
|
Intent share = new Intent(Intent.ACTION_VIEW, Uri.parse("https://line.me/R/share?text=" + URLEncoder.encode(builder.getText(), "UTF-8")));
|
||||||
|
mContext.startActivity(share);
|
||||||
|
callback.onSuccess();
|
||||||
|
} catch (Exception e) {
|
||||||
|
callback.onFailure();
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package com.yunbao.share.platform;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.facebook.CallbackManager;
|
||||||
|
import com.facebook.FacebookCallback;
|
||||||
|
import com.facebook.FacebookException;
|
||||||
|
import com.facebook.FacebookSdk;
|
||||||
|
import com.facebook.share.Sharer;
|
||||||
|
import com.facebook.share.model.ShareLinkContent;
|
||||||
|
import com.facebook.share.widget.MessageDialog;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
import com.yunbao.share.AbsShareInterface;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
|
||||||
|
public class MessengerShare extends AbsShareInterface {
|
||||||
|
public static CallbackManager callbackManager;
|
||||||
|
|
||||||
|
public MessengerShare(Context context) {
|
||||||
|
super(context);
|
||||||
|
FacebookSdk.setIsDebugEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void share(ShareBuilder builder, ICallback callback) {
|
||||||
|
callbackManager = CallbackManager.Factory.create();
|
||||||
|
ShareLinkContent content = new ShareLinkContent.Builder()
|
||||||
|
.setContentUrl(Uri.parse(builder.getLink()))
|
||||||
|
.build();
|
||||||
|
MessageDialog dialog = new MessageDialog((Activity) mContext);
|
||||||
|
dialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Sharer.Result result) {
|
||||||
|
callback.onSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull FacebookException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(dialog.canShow(content)) {
|
||||||
|
dialog.show(content);
|
||||||
|
}else{
|
||||||
|
callback.onFailure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
package com.yunbao.share.platform;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import com.twitter.sdk.android.core.Twitter;
|
||||||
|
import com.yunbao.share.AbsShareInterface;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
|
||||||
|
public class TwitterShare extends AbsShareInterface {
|
||||||
|
public TwitterShare(Context context) {
|
||||||
|
super(context);
|
||||||
|
Twitter.initialize(context);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void share(ShareBuilder date, ICallback callback) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
new TwitterAuthClient().authorize((Activity) mContext, new Callback<TwitterSession>() {
|
||||||
|
@Override
|
||||||
|
public void success(Result<TwitterSession> result) {
|
||||||
|
//获取以下登录成功返回信息进行登录验证
|
||||||
|
|
||||||
|
//获取登录用户信息
|
||||||
|
final TwitterSession activeSession=TwitterCore.getInstance().getSessionManager().getActiveSession();
|
||||||
|
Intent intent = new ComposerActivity.Builder(mContext)
|
||||||
|
.session(activeSession)
|
||||||
|
.image(fileToUri(date.getFile()))
|
||||||
|
.text(date.getText())
|
||||||
|
.hashtags("#twitter")
|
||||||
|
.createIntent();
|
||||||
|
mContext.startActivity(intent);
|
||||||
|
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void failure(TwitterException e) {
|
||||||
|
}
|
||||||
|
});*/
|
||||||
|
/* TweetComposer.Builder builder;
|
||||||
|
if (date.getFile() == null) {
|
||||||
|
try {
|
||||||
|
builder=new TweetComposer.Builder(mContext)
|
||||||
|
.text(date.getText())
|
||||||
|
.url(new URL(date.getLink()));
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
builder = new TweetComposer.Builder(mContext)
|
||||||
|
.text(date.getText())
|
||||||
|
.image(fileToUri(date.getFile()));
|
||||||
|
}
|
||||||
|
builder.show();*/
|
||||||
|
try {
|
||||||
|
Intent sendIntent = new Intent();
|
||||||
|
sendIntent.setAction(Intent.ACTION_VIEW);
|
||||||
|
sendIntent.putExtra(Intent.EXTRA_TEXT, date.getText());
|
||||||
|
// sendIntent.setType("text/plain");
|
||||||
|
//sendIntent.setPackage("com.twitter.composer.ComposerShareActivity");
|
||||||
|
sendIntent.setData(Uri.parse("https://twitter.com/intent/tweet?text=" +URLEncoder.encode(date.getText(),"UTF-8")));
|
||||||
|
mContext.startActivity(sendIntent);
|
||||||
|
callback.onSuccess();
|
||||||
|
} catch (Exception e) {
|
||||||
|
callback.onFailure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
30
Share/src/main/java/com/yunbao/share/platform/WhatsApp.java
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
package com.yunbao.share.platform;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import com.yunbao.share.AbsShareInterface;
|
||||||
|
import com.yunbao.share.ICallback;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
|
||||||
|
public class WhatsApp extends AbsShareInterface {
|
||||||
|
public WhatsApp(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void share(ShareBuilder builder, ICallback callback) {
|
||||||
|
try {
|
||||||
|
Intent sendIntent = new Intent();
|
||||||
|
sendIntent.setAction(Intent.ACTION_SEND);
|
||||||
|
sendIntent.putExtra(Intent.EXTRA_TEXT, builder.getText());
|
||||||
|
sendIntent.setType("text/plain");
|
||||||
|
sendIntent.setPackage("com.whatsapp");
|
||||||
|
mContext.startActivity(sendIntent);
|
||||||
|
callback.onSuccess();
|
||||||
|
} catch (Exception e) {
|
||||||
|
callback.onFailure();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.yunbao.share.receiver;
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.twitter.sdk.android.tweetcomposer.TweetUploadService;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
|
||||||
|
public class TwitterResultReceiver extends BroadcastReceiver {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
Log.i("分享log", "onReceive: "+intent.getAction());
|
||||||
|
if (TweetUploadService.UPLOAD_SUCCESS.equals(intent.getAction())) {
|
||||||
|
ToastUtil.show("推特分享成功");
|
||||||
|
// success
|
||||||
|
final Long tweetId = intent.getExtras().getLong(TweetUploadService.EXTRA_TWEET_ID);
|
||||||
|
} else if (TweetUploadService.UPLOAD_FAILURE.equals(intent.getAction())) {
|
||||||
|
// failure
|
||||||
|
ToastUtil.show("推特分享失败");
|
||||||
|
final Intent retryIntent = intent.getExtras().getParcelable(TweetUploadService.EXTRA_RETRY_INTENT);
|
||||||
|
} else if (TweetUploadService.TWEET_COMPOSE_CANCEL.equals(intent.getAction())) {
|
||||||
|
// cancel
|
||||||
|
ToastUtil.show("推特分享取消");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
158
Share/src/main/java/com/yunbao/share/ui/InvitePopDialog.java
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
package com.yunbao.share.ui;
|
||||||
|
|
||||||
|
import static android.content.Context.CLIPBOARD_SERVICE;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.ClipData;
|
||||||
|
import android.content.ClipboardManager;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.LinearGradient;
|
||||||
|
import android.graphics.Shader;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.lxj.xpopup.XPopup;
|
||||||
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
|
import com.pdlive.shayu.R;
|
||||||
|
import com.yunbao.common.CommonAppConfig;
|
||||||
|
import com.yunbao.common.dialog.AbsDialogPopupWindow;
|
||||||
|
import com.yunbao.common.utils.DialogUitl;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
import com.yunbao.share.adapters.ShareAppAdapter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class InvitePopDialog extends AbsDialogPopupWindow {
|
||||||
|
private ShareAppAdapter adapter;
|
||||||
|
private RecyclerView list;
|
||||||
|
private RoundedImageView avatar;
|
||||||
|
private TextView info;
|
||||||
|
private TextView link;
|
||||||
|
private TextView title;
|
||||||
|
private List<ShareBuilder> data;
|
||||||
|
|
||||||
|
private String uid;
|
||||||
|
private String anchorId;
|
||||||
|
private String anchorName;
|
||||||
|
private String anchorAvatar;
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
public InvitePopDialog(@NonNull Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvitePopDialog setUid(String uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvitePopDialog setAnchorId(String anchorId) {
|
||||||
|
this.anchorId = anchorId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvitePopDialog setAnchorName(String anchorName) {
|
||||||
|
this.anchorName = anchorName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvitePopDialog setAnchorAvatar(String anchorAvatar) {
|
||||||
|
this.anchorAvatar = anchorAvatar;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildDialog(XPopup.Builder builder) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int bindLayoutId() {
|
||||||
|
return R.layout.dialog_share;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate() {
|
||||||
|
super.onCreate();
|
||||||
|
findViewById(R.id.close).setOnClickListener(v -> dismiss());
|
||||||
|
((ImageView) findViewById(R.id.close)).setImageResource(R.mipmap.icon_invite_close);
|
||||||
|
findViewById(R.id.share_copy).setOnClickListener(v -> copyLink());
|
||||||
|
// findViewById(R.id.share_preview).setVisibility(GONE);
|
||||||
|
findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet);
|
||||||
|
title = findViewById(R.id.share_title);
|
||||||
|
list = findViewById(R.id.share_apps_list);
|
||||||
|
avatar = findViewById(R.id.share_avatar);
|
||||||
|
info = findViewById(R.id.share_info);
|
||||||
|
link = findViewById(R.id.share_link);
|
||||||
|
adapter = new ShareAppAdapter(getContext());
|
||||||
|
list.setLayoutManager(new GridLayoutManager(getContext(), 3));
|
||||||
|
list.setAdapter(adapter);
|
||||||
|
initData();
|
||||||
|
link.setText(url.substring(0, 40));
|
||||||
|
info.setText(R.string.dialog_invite_info);
|
||||||
|
avatar.setImageResource(R.mipmap.ic_launcher);
|
||||||
|
//title.setTextColor(getContext().getResources().getColorStateList(R.drawable.bg_invite_title));
|
||||||
|
title.setText(R.string.dialog_invite_title);
|
||||||
|
title.getViewTreeObserver().addOnGlobalLayoutListener(this::setTitleColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setTitleColor() {
|
||||||
|
int[] colors = {
|
||||||
|
Color.parseColor("#3377FF"),
|
||||||
|
Color.parseColor("#7F66FF"),
|
||||||
|
};
|
||||||
|
float[] position = {
|
||||||
|
0f,
|
||||||
|
1.0f
|
||||||
|
};
|
||||||
|
float height = title.getMeasuredHeight();
|
||||||
|
LinearGradient mLinearGradient = new LinearGradient(0, 0, 0, height, colors, position, Shader.TileMode.CLAMP);
|
||||||
|
title.getPaint().setShader(mLinearGradient);
|
||||||
|
title.invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initData() {
|
||||||
|
data = new ArrayList<>();
|
||||||
|
data.add(builder(ShareBuilder.APP_FACEBOOK));
|
||||||
|
data.add(builder(ShareBuilder.APP_LINE));
|
||||||
|
data.add(builder(ShareBuilder.APP_TWITTER));
|
||||||
|
data.add(builder(ShareBuilder.APP_WHATSAPP));
|
||||||
|
data.add(builder(ShareBuilder.APP_MESSENGER));
|
||||||
|
// data.add(builder(ShareBuilder.APP_INSTAGRAM));
|
||||||
|
adapter.setList(data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private ShareBuilder builder(int type) {
|
||||||
|
ShareBuilder builder = ShareBuilder.builder(type);
|
||||||
|
builder.setText(getContext().getString(R.string.dialog_invite_info));
|
||||||
|
builder.setLink(url);
|
||||||
|
builder.setUid(uid);
|
||||||
|
builder.setAnchorId(anchorId);
|
||||||
|
builder.setAnchorName(anchorName);
|
||||||
|
builder.setAnchorAvatar(anchorAvatar);
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void copyLink() {
|
||||||
|
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE);
|
||||||
|
ClipData clipData = ClipData.newPlainText("text", info.getText() + "\n" + url);
|
||||||
|
cm.setPrimaryClip(clipData);
|
||||||
|
ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success));
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvitePopDialog setUrl(String data) {
|
||||||
|
this.url = data + "&isGoogle=" + (CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0");
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
146
Share/src/main/java/com/yunbao/share/ui/SharePopDialog.java
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
package com.yunbao.share.ui;
|
||||||
|
|
||||||
|
import static android.content.Context.CLIPBOARD_SERVICE;
|
||||||
|
|
||||||
|
import android.content.ClipData;
|
||||||
|
import android.content.ClipboardManager;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.lxj.xpopup.XPopup;
|
||||||
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
|
import com.pdlive.shayu.R;
|
||||||
|
import com.yunbao.common.dialog.AbsDialogPopupWindow;
|
||||||
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
import com.yunbao.share.bean.ShareBuilder;
|
||||||
|
import com.yunbao.share.adapters.ShareAppAdapter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SharePopDialog extends AbsDialogPopupWindow {
|
||||||
|
private ShareAppAdapter adapter;
|
||||||
|
private RecyclerView list;
|
||||||
|
private RoundedImageView avatar;
|
||||||
|
private TextView info;
|
||||||
|
private TextView link;
|
||||||
|
private List<ShareBuilder> data;
|
||||||
|
|
||||||
|
private String uid;
|
||||||
|
private String anchorId;
|
||||||
|
private String anchorName;
|
||||||
|
private String anchorAvatar;
|
||||||
|
private String shareLink;
|
||||||
|
|
||||||
|
public SharePopDialog(@NonNull Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SharePopDialog setUid(String uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SharePopDialog setAnchorId(String anchorId) {
|
||||||
|
this.anchorId = anchorId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SharePopDialog setAnchorName(String anchorName) {
|
||||||
|
this.anchorName = anchorName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SharePopDialog setAnchorAvatar(String anchorAvatar) {
|
||||||
|
this.anchorAvatar = anchorAvatar;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SharePopDialog setShareLink(String link) {
|
||||||
|
this.shareLink = link;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildDialog(XPopup.Builder builder) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int bindLayoutId() {
|
||||||
|
return R.layout.dialog_share;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate() {
|
||||||
|
super.onCreate();
|
||||||
|
findViewById(R.id.close).setOnClickListener(v -> dismiss());
|
||||||
|
findViewById(R.id.share_copy).setOnClickListener(v -> copyLink());
|
||||||
|
list = findViewById(R.id.share_apps_list);
|
||||||
|
avatar = findViewById(R.id.share_avatar);
|
||||||
|
info = findViewById(R.id.share_info);
|
||||||
|
link = findViewById(R.id.share_link);
|
||||||
|
adapter = new ShareAppAdapter(getContext());
|
||||||
|
list.setLayoutManager(new GridLayoutManager(getContext(), 3));
|
||||||
|
list.setAdapter(adapter);
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initData() {
|
||||||
|
data = new ArrayList<>();
|
||||||
|
data.add(builder(ShareBuilder.APP_FACEBOOK));
|
||||||
|
data.add(builder(ShareBuilder.APP_LINE));
|
||||||
|
data.add(builder(ShareBuilder.APP_TWITTER));
|
||||||
|
data.add(builder(ShareBuilder.APP_WHATSAPP));
|
||||||
|
data.add(builder(ShareBuilder.APP_MESSENGER));
|
||||||
|
//data.add(builder(ShareBuilder.APP_INSTAGRAM));
|
||||||
|
adapter.setList(data);
|
||||||
|
String url;
|
||||||
|
if (shareLink == null) {
|
||||||
|
url = ShareBuilder.createLiveShareLink(uid, anchorId, anchorName, anchorAvatar).substring(0, 40) + "...";
|
||||||
|
} else {
|
||||||
|
if (shareLink.length() > 40) {
|
||||||
|
url = shareLink.substring(0, 40) + "...";
|
||||||
|
} else {
|
||||||
|
url = shareLink;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
link.setText(url);
|
||||||
|
info.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(anchorName) ? "" : anchorName));
|
||||||
|
ImgLoader.display(getContext(), anchorAvatar, avatar);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ShareBuilder builder(int type) {
|
||||||
|
ShareBuilder builder = ShareBuilder.builder(type);
|
||||||
|
builder.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(anchorName) ? "" : anchorName));
|
||||||
|
builder.setUid(uid);
|
||||||
|
builder.setAnchorId(anchorId);
|
||||||
|
builder.setAnchorName(anchorName);
|
||||||
|
builder.setAnchorAvatar(anchorAvatar);
|
||||||
|
if (shareLink != null) {
|
||||||
|
builder.setLink(shareLink);
|
||||||
|
}
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void copyLink() {
|
||||||
|
String url;
|
||||||
|
if (shareLink != null) {
|
||||||
|
url = shareLink;
|
||||||
|
} else {
|
||||||
|
url = ShareBuilder.createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
|
||||||
|
}
|
||||||
|
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE);
|
||||||
|
ClipData clipData = ClipData.newPlainText("text",info.getText().toString()+"\n"+url);
|
||||||
|
cm.setPrimaryClip(clipData);
|
||||||
|
ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success));
|
||||||
|
}
|
||||||
|
}
|
||||||
9
Share/src/main/res/drawable/bg_btn.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:width="189dp" android:height="42dp">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffc621" android:endColor="#ffffae05" android:angle="135" />
|
||||||
|
<corners android:radius="21dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
||||||
10
Share/src/main/res/drawable/bg_invite_title.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:width="112dp" android:height="42dp">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<stroke android:width="1dp" android:color="#ffffffff" />
|
||||||
|
<gradient android:type="linear" android:useLevel="true" android:startColor="#3377FF" android:endColor="#7F66FF" android:angle="90" />
|
||||||
|
<corners android:topLeftRadius="22dp" android:topRightRadius="22dp" android:bottomLeftRadius="22dp" android:bottomRightRadius="22dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
||||||
12
Share/src/main/res/drawable/bg_preview.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<corners android:radius="15dp" />
|
||||||
|
<solid android:color="#ffffff" />
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="#EBEBEB" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
||||||
56
Share/src/main/res/layout/dialog_invite_list.xml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:id="@+id/share_dialog"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@mipmap/bg_dialog_share">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/share_title"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/dialog_invite_title"
|
||||||
|
android:textColor="@drawable/bg_invite_title"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/close"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
app:srcCompat="@mipmap/icon_dialog_charge_close" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/share_apps_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="200dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/linearLayout2"
|
||||||
|
tools:itemCount="6"
|
||||||
|
tools:layoutManager="GridLayoutManager"
|
||||||
|
tools:listitem="@layout/item_share_app"
|
||||||
|
tools:spanCount="3" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
66
Share/src/main/res/layout/dialog_share.xml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:id="@+id/share_dialog"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@mipmap/bg_dialog_share">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/share_title"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/dialog_share_title"
|
||||||
|
android:textColor="#333333"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/close"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
app:srcCompat="@mipmap/icon_share_close" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/share_preview"
|
||||||
|
layout="@layout/view_share_preview"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginTop="14dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/linearLayout2" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/share_apps_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="200dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/share_preview"
|
||||||
|
tools:itemCount="6"
|
||||||
|
tools:layoutManager="GridLayoutManager"
|
||||||
|
tools:listitem="@layout/item_share_app"
|
||||||
|
tools:spanCount="3" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
34
Share/src/main/res/layout/item_share_app.xml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/linearLayout"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/share_app_icon"
|
||||||
|
android:layout_width="56dp"
|
||||||
|
android:layout_height="56dp"
|
||||||
|
android:layout_marginStart="35dp"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginEnd="35dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:src="@tools:sample/avatars" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/share_app_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="12dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:textColor="#666666"
|
||||||
|
android:textSize="12sp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/share_app_icon" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
75
Share/src/main/res/layout/view_share_preview.xml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/bg_preview"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginEnd="2dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.makeramen.roundedimageview.RoundedImageView
|
||||||
|
android:id="@+id/share_avatar"
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:src="@drawable/m_chu_xia"
|
||||||
|
app:riv_oval="true" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/share_info"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/dialog_share_info"
|
||||||
|
android:textColor="#333333"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/share_copy"
|
||||||
|
android:layout_width="70dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
|
||||||
|
android:background="@drawable/bg_btn"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginStart="25dp"
|
||||||
|
android:text="@string/dialog_share_copy"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/share_layout_link"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:layout_marginBottom="12dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:src="@mipmap/icon_share_url" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/share_link"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:textColor="#999999"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
BIN
Share/src/main/res/mipmap/bg_dialog_inviet.png
Normal file
|
After Width: | Height: | Size: 315 KiB |
BIN
Share/src/main/res/mipmap/bg_dialog_share.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
Share/src/main/res/mipmap/icon_invite_close.png
Normal file
|
After Width: | Height: | Size: 548 B |
BIN
Share/src/main/res/mipmap/icon_share_close.png
Normal file
|
After Width: | Height: | Size: 484 B |
BIN
Share/src/main/res/mipmap/icon_share_facebook.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
Share/src/main/res/mipmap/icon_share_instagram.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
Share/src/main/res/mipmap/icon_share_line.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
Share/src/main/res/mipmap/icon_share_messenger.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
Share/src/main/res/mipmap/icon_share_twitter.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
Share/src/main/res/mipmap/icon_share_url.png
Normal file
|
After Width: | Height: | Size: 955 B |
BIN
Share/src/main/res/mipmap/icon_share_whatsapp.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
8
Share/src/main/res/values-en/strings.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="dialog_share_title">Share</string>
|
||||||
|
<string name="dialog_share_info">Come and watch %s live on PDLIVE and meet more interesting people!</string>
|
||||||
|
<string name="dialog_invite_title">Invite Friends</string>
|
||||||
|
<string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string>
|
||||||
|
<string name="dialog_share_copy">Copy</string>
|
||||||
|
</resources>
|
||||||
17
Share/src/main/res/values/strings.xml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<resources>
|
||||||
|
<string name="com.twitter.sdk.android.CONSUMER_KEY" translatable="false">ZWRrZnRUNlBlcHVxMXpsMzVmb2k6MTpjaQ</string>
|
||||||
|
<string name="com.twitter.sdk.android.CONSUMER_SECRET" translatable="false">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
|
||||||
|
|
||||||
|
<string name="dialog_share_title">分享</string>
|
||||||
|
<string name="dialog_share_info">快來 PDLIVE觀看%s直播,認識更多有趣的朋友吧!</string>
|
||||||
|
<string name="dialog_share_app_facebook" translatable="false">Facebook</string>
|
||||||
|
<string name="dialog_share_app_line" translatable="false">Line</string>
|
||||||
|
<string name="dialog_share_app_twitter" translatable="false">Twitter</string>
|
||||||
|
<string name="dialog_share_app_whatsapp" translatable="false">WhatsApp</string>
|
||||||
|
<string name="dialog_share_app_messenger" translatable="false">Messenger</string>
|
||||||
|
<string name="dialog_share_app_instagram" translatable="false">Instagram</string>
|
||||||
|
|
||||||
|
<string name="dialog_invite_title">邀請好友</string>
|
||||||
|
<string name="dialog_invite_info">快來 PDLIVE觀看直播,認識更多有趣的朋友吧!</string>
|
||||||
|
<string name="dialog_share_copy">複製</string>
|
||||||
|
</resources>
|
||||||
17
Share/src/test/java/com/yunbao/share/ExampleUnitTest.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package com.yunbao.share;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Example local unit test, which will execute on the development machine (host).
|
||||||
|
*
|
||||||
|
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||||
|
*/
|
||||||
|
public class ExampleUnitTest {
|
||||||
|
@Test
|
||||||
|
public void addition_isCorrect() {
|
||||||
|
assertEquals(4, 2 + 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -230,6 +230,7 @@ dependencies {
|
|||||||
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
|
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
|
||||||
|
|
||||||
// implementation rootProject.ext.dependencies["leakcanary"]
|
// implementation rootProject.ext.dependencies["leakcanary"]
|
||||||
|
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10'
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.CALL_PHONE"
|
android:name="android.permission.CALL_PHONE"
|
||||||
tools:node="remove" />
|
tools:node="remove" />
|
||||||
|
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
|
||||||
|
tools:ignore="ProtectedPermissions" />
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.READ_LOGS"
|
android:name="android.permission.READ_LOGS"
|
||||||
tools:ignore="ProtectedPermissions"
|
tools:ignore="ProtectedPermissions"
|
||||||
@@ -78,17 +80,22 @@
|
|||||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||||
<uses-permission android:name="com.android.vending.BILLING" />
|
<uses-permission android:name="com.android.vending.BILLING" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
|
|
||||||
<!-- Android11新增 -->
|
<!-- Android11新增 -->
|
||||||
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
|
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
|
||||||
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
|
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
|
||||||
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
|
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
|
||||||
|
<queries>
|
||||||
|
<package android:name="com.twitter.android"/>
|
||||||
|
<package android:name="jp.naver.line.android"/>
|
||||||
|
|
||||||
|
</queries>
|
||||||
<application
|
<application
|
||||||
android:name="com.shayu.phonelive.AppContext"
|
android:name="com.shayu.phonelive.AppContext"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:largeHeap="true"
|
android:largeHeap="true"
|
||||||
|
android:supportsRtl="true"
|
||||||
android:preserveLegacyExternalStorage="true"
|
android:preserveLegacyExternalStorage="true"
|
||||||
android:requestLegacyExternalStorage="true"
|
android:requestLegacyExternalStorage="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import android.os.Looper;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.os.Process;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -39,8 +40,10 @@ import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
|
|||||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||||
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
|
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
|
||||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||||
|
import com.yunbao.common.utils.AppManager;
|
||||||
import com.yunbao.common.utils.L;
|
import com.yunbao.common.utils.L;
|
||||||
import com.yunbao.common.utils.SpUtil;
|
import com.yunbao.common.utils.SpUtil;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.live.socket.SocketRyClient;
|
import com.yunbao.live.socket.SocketRyClient;
|
||||||
import com.yunbao.live.utils.LiveImDeletUtil;
|
import com.yunbao.live.utils.LiveImDeletUtil;
|
||||||
import com.yunbao.live.views.PortraitLiveManager;
|
import com.yunbao.live.views.PortraitLiveManager;
|
||||||
@@ -77,6 +80,7 @@ public class AppContext extends CommonAppContext {
|
|||||||
public LiveImDeletUtil liveImDeletUtil;
|
public LiveImDeletUtil liveImDeletUtil;
|
||||||
private final static List<WeakReference<Activity>> activities = new ArrayList<>();
|
private final static List<WeakReference<Activity>> activities = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
|
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResumed(Activity activity) {
|
public void onActivityResumed(Activity activity) {
|
||||||
@@ -104,12 +108,14 @@ public class AppContext extends CommonAppContext {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
AppManager.getInstance().removeActivity(activity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
||||||
activities.add(new WeakReference<>(activity));
|
activities.add(new WeakReference<>(activity));
|
||||||
CrashSaveBean.getInstance().setActivitySize(activities);
|
CrashSaveBean.getInstance().setActivitySize(activities);
|
||||||
|
AppManager.getInstance().addActivity(activity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -122,11 +128,17 @@ public class AppContext extends CommonAppContext {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
//注册全局异常捕获
|
|
||||||
if (!isMainProcess()) {
|
if (!isMainProcess()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
AppManager.runDebugCode(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
ToastUtil.show("Debug代码");
|
||||||
|
}
|
||||||
|
});
|
||||||
CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis());
|
CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis());
|
||||||
|
//注册全局异常捕获
|
||||||
registerError();
|
registerError();
|
||||||
registerFirebaseCrash();
|
registerFirebaseCrash();
|
||||||
LogUtils.start(this);
|
LogUtils.start(this);
|
||||||
@@ -277,18 +289,21 @@ public class AppContext extends CommonAppContext {
|
|||||||
.setMainCrashHandler((t, e) -> {
|
.setMainCrashHandler((t, e) -> {
|
||||||
Log.e("ApplicationError", "主线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
Log.e("ApplicationError", "主线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
//闪退后finish所有Activity并且杀死进程
|
AppManager.runDebugCode(()->{
|
||||||
for (WeakReference<Activity> activity : activities) {
|
//闪退后finish所有Activity并且杀死进程
|
||||||
if (activity != null && activity.get() != null) {
|
for (WeakReference<Activity> activity : activities) {
|
||||||
activity.get().finish();
|
if (activity != null && activity.get() != null) {
|
||||||
|
activity.get().finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
Process.killProcess(Process.myPid());
|
||||||
/* Process.killProcess(Process.myPid());
|
System.exit(0);
|
||||||
System.exit(0);*/
|
setFirebaseCrashData();
|
||||||
setFirebaseCrashData();
|
new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||||
new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
throw new RuntimeException(e);
|
||||||
throw new RuntimeException(e);
|
}, 100);
|
||||||
}, 100);
|
});
|
||||||
|
|
||||||
})
|
})
|
||||||
.setUncaughtCrashHandler((t, e) -> {
|
.setUncaughtCrashHandler((t, e) -> {
|
||||||
Log.e("ApplicationError", "子线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
Log.e("ApplicationError", "子线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import android.os.Looper;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.yunbao.common.BuildConfig;
|
||||||
import com.yunbao.common.bean.CrashSaveBean;
|
import com.yunbao.common.bean.CrashSaveBean;
|
||||||
|
import com.yunbao.common.utils.AppManager;
|
||||||
import com.yunbao.common.utils.FileUtil;
|
import com.yunbao.common.utils.FileUtil;
|
||||||
import com.yunbao.common.utils.SpUtil;
|
import com.yunbao.common.utils.SpUtil;
|
||||||
|
|
||||||
@@ -90,10 +92,12 @@ public class NeverCrashUtils {
|
|||||||
*
|
*
|
||||||
* @param application application
|
* @param application application
|
||||||
*/
|
*/
|
||||||
|
private boolean errorWhile = true;
|
||||||
|
|
||||||
public void register(Application application) {
|
public void register(Application application) {
|
||||||
//主线程异常拦截
|
//主线程异常拦截
|
||||||
new Handler(Looper.getMainLooper()).post(() -> {
|
new Handler(Looper.getMainLooper()).post(() -> {
|
||||||
while (true) {
|
while (errorWhile) {
|
||||||
try {
|
try {
|
||||||
Looper.loop();
|
Looper.loop();
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
@@ -101,10 +105,12 @@ public class NeverCrashUtils {
|
|||||||
Log.e(TAG, "未捕获的主线程异常行为", e);
|
Log.e(TAG, "未捕获的主线程异常行为", e);
|
||||||
}
|
}
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Toast.makeText(application, "发生闪退", Toast.LENGTH_SHORT).show();
|
|
||||||
|
AppManager.runDebugCode(() -> Toast.makeText(application, "发生闪退:" + e.getMessage(), Toast.LENGTH_SHORT).show());
|
||||||
FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()), throwableToString(e), "error.log");
|
FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()), throwableToString(e), "error.log");
|
||||||
getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);
|
getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);
|
||||||
return;
|
AppManager.runDebugCode(() -> errorWhile = false);
|
||||||
|
// return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -139,11 +145,11 @@ public class NeverCrashUtils {
|
|||||||
writer.write("PhoneName=" + Build.BRAND + "\n");
|
writer.write("PhoneName=" + Build.BRAND + "\n");
|
||||||
writer.write("Phone=" + Build.MODEL + "\n");
|
writer.write("Phone=" + Build.MODEL + "\n");
|
||||||
writer.write("CPU=" + Arrays.toString(Build.SUPPORTED_ABIS) + "\n");
|
writer.write("CPU=" + Arrays.toString(Build.SUPPORTED_ABIS) + "\n");
|
||||||
writer.write("runTime=" + (System.currentTimeMillis() - CrashSaveBean.getInstance().getStartTime())+ "\n");
|
writer.write("runTime=" + (System.currentTimeMillis() - CrashSaveBean.getInstance().getStartTime()) + "\n");
|
||||||
writer.write("enterRoom=" + CrashSaveBean.getInstance().getEnterRoom()+ "\n");
|
writer.write("enterRoom=" + CrashSaveBean.getInstance().getEnterRoom() + "\n");
|
||||||
writer.write("slidingRoom=" + CrashSaveBean.getInstance().getSlidingRoom()+ "\n");
|
writer.write("slidingRoom=" + CrashSaveBean.getInstance().getSlidingRoom() + "\n");
|
||||||
writer.write("playSvga=" + CrashSaveBean.getInstance().getPlaySvga()+ "\n");
|
writer.write("playSvga=" + CrashSaveBean.getInstance().getPlaySvga() + "\n");
|
||||||
writer.write("ActivitySize=" + CrashSaveBean.getInstance().getActivitySize()+ "\n");
|
writer.write("ActivitySize=" + CrashSaveBean.getInstance().getActivitySize() + "\n");
|
||||||
writer.write("UserData=" + SpUtil.getInstance().getStringValue(SpUtil.USER_INFO) + "\n");
|
writer.write("UserData=" + SpUtil.getInstance().getStringValue(SpUtil.USER_INFO) + "\n");
|
||||||
writer.write("[ERROR]");
|
writer.write("[ERROR]");
|
||||||
PrintWriter printWriter = new PrintWriter(writer);
|
PrintWriter printWriter = new PrintWriter(writer);
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package com.shayu.phonelive.activity;
|
package com.shayu.phonelive.activity;
|
||||||
|
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.res.Configuration;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -19,6 +22,8 @@ import android.widget.ImageView;
|
|||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
|
import androidx.core.app.ActivityOptionsCompat;
|
||||||
import androidx.core.app.NotificationManagerCompat;
|
import androidx.core.app.NotificationManagerCompat;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
@@ -45,6 +50,7 @@ import com.yunbao.common.interfaces.CommonCallback;
|
|||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||||
import com.yunbao.common.utils.DownloadUtil;
|
import com.yunbao.common.utils.DownloadUtil;
|
||||||
|
import com.yunbao.common.utils.DpUtil;
|
||||||
import com.yunbao.common.utils.L;
|
import com.yunbao.common.utils.L;
|
||||||
import com.yunbao.common.utils.LogUtil;
|
import com.yunbao.common.utils.LogUtil;
|
||||||
import com.yunbao.common.utils.MD5Util;
|
import com.yunbao.common.utils.MD5Util;
|
||||||
@@ -98,8 +104,18 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
|||||||
private int mVideoLastProgress;
|
private int mVideoLastProgress;
|
||||||
private boolean mForward;
|
private boolean mForward;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Resources getResources() {
|
||||||
|
Resources res = super.getResources();
|
||||||
|
Configuration config = new Configuration();
|
||||||
|
config.setToDefaults();
|
||||||
|
config.locale = IMLoginManager.get(this).getLocaleLanguage();
|
||||||
|
res.updateConfiguration(config, res.getDisplayMetrics());
|
||||||
|
return res;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
EventBus.getDefault().register(this);
|
EventBus.getDefault().register(this);
|
||||||
setStatusBar();
|
setStatusBar();
|
||||||
@@ -184,6 +200,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
|||||||
String adInfo = bean.getAdInfo();
|
String adInfo = bean.getAdInfo();
|
||||||
if (!TextUtils.isEmpty(adInfo)) {
|
if (!TextUtils.isEmpty(adInfo)) {
|
||||||
JSONObject obj = JSON.parseObject(adInfo);
|
JSONObject obj = JSON.parseObject(adInfo);
|
||||||
|
Log.i(TAG, "callback: " + adInfo);
|
||||||
if (obj.getIntValue("switch") == 1) {
|
if (obj.getIntValue("switch") == 1) {
|
||||||
List<AdBean> list = JSON.parseArray(obj.getString("list"), AdBean.class);
|
List<AdBean> list = JSON.parseArray(obj.getString("list"), AdBean.class);
|
||||||
if (list != null && list.size() > 0) {
|
if (list != null && list.size() > 0) {
|
||||||
@@ -268,8 +285,19 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
|||||||
if (getIntent().getStringExtra("activityUrl") != null) {
|
if (getIntent().getStringExtra("activityUrl") != null) {
|
||||||
intent.putExtra("activityUrl", getIntent().getStringExtra("activityUrl"));
|
intent.putExtra("activityUrl", getIntent().getStringExtra("activityUrl"));
|
||||||
}
|
}
|
||||||
|
if (mImageViewList != null && mImageViewList.size() > 0) {
|
||||||
LauncherActivity.this.startActivity(intent);
|
Log.i(TAG, "forwardMainActivity: " + mImageViewList.size());
|
||||||
|
AdBean bean = mAdList.get(0);
|
||||||
|
if (bean != null && bean.getAnimation() == 1) {
|
||||||
|
intent.putExtra("ad_url", mAdList.get(0).getUrl());
|
||||||
|
Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(LauncherActivity.this, mImageViewList.get(0), "ad_img_0").toBundle();
|
||||||
|
LauncherActivity.this.startActivity(intent, bundle);
|
||||||
|
} else {
|
||||||
|
LauncherActivity.this.startActivity(intent);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LauncherActivity.this.startActivity(intent);
|
||||||
|
}
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -378,6 +406,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
|||||||
imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||||
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||||
imageView.setBackgroundColor(0xffffffff);
|
imageView.setBackgroundColor(0xffffffff);
|
||||||
|
imageView.setTransitionName("ad_img_" + i);
|
||||||
mImageViewList.add(imageView);
|
mImageViewList.add(imageView);
|
||||||
ImgLoader.display(mContext, mAdList.get(i).getUrl(), imageView);
|
ImgLoader.display(mContext, mAdList.get(i).getUrl(), imageView);
|
||||||
}
|
}
|
||||||
@@ -511,7 +540,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
|||||||
}
|
}
|
||||||
} else if (e == TXLiveConstants.PLAY_ERR_NET_DISCONNECT ||
|
} else if (e == TXLiveConstants.PLAY_ERR_NET_DISCONNECT ||
|
||||||
e == TXLiveConstants.PLAY_ERR_FILE_NOT_FOUND) {
|
e == TXLiveConstants.PLAY_ERR_FILE_NOT_FOUND) {
|
||||||
ToastUtil.show(WordUtil.getString(R.string.live_play_error));
|
ToastUtil.show(mContext.getString(R.string.live_play_error));
|
||||||
checkUidAndToken();
|
checkUidAndToken();
|
||||||
} else if (e == TXLiveConstants.PLAY_EVT_PLAY_PROGRESS) {
|
} else if (e == TXLiveConstants.PLAY_EVT_PLAY_PROGRESS) {
|
||||||
int progress = bundle.getInt("EVT_PLAY_PROGRESS_MS");
|
int progress = bundle.getInt("EVT_PLAY_PROGRESS_MS");
|
||||||
|
|||||||
@@ -89,20 +89,23 @@ public class CustomMessageReceiver extends PushMessageReceiver {
|
|||||||
public boolean onNotificationMessageArrived(Context context, PushType pushType, PushNotificationMessage notificationMessage) {
|
public boolean onNotificationMessageArrived(Context context, PushType pushType, PushNotificationMessage notificationMessage) {
|
||||||
Log.i("gmc", notificationMessage.getPushContent() + "VVV" + notificationMessage.getPushTitle() + "gmc11112222" + notificationMessage.getExtra());
|
Log.i("gmc", notificationMessage.getPushContent() + "VVV" + notificationMessage.getPushTitle() + "gmc11112222" + notificationMessage.getExtra());
|
||||||
if (!SpUtil.getInstance().getBooleanValue("NOTIFICATION")) {
|
if (!SpUtil.getInstance().getBooleanValue("NOTIFICATION")) {
|
||||||
Activity activity = AppContext.activityWeakReference.get();
|
if (AppContext.activityWeakReference != null) {
|
||||||
if (activity != null) {
|
Activity activity = AppContext.activityWeakReference.get();
|
||||||
DialogUitl.showSimpleDialog(activity, "应用需要通知权限", new DialogUitl.SimpleCallback() {
|
if (activity != null) {
|
||||||
@Override
|
DialogUitl.showSimpleDialog(activity, "应用需要通知权限", new DialogUitl.SimpleCallback() {
|
||||||
public void onConfirmClick(Dialog dialog, String content) {
|
@Override
|
||||||
Intent intent = new Intent();
|
public void onConfirmClick(Dialog dialog, String content) {
|
||||||
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
|
Intent intent = new Intent();
|
||||||
intent.putExtra("app_package", context.getPackageName());
|
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
|
||||||
intent.putExtra("app_uid", context.getApplicationInfo().uid);
|
intent.putExtra("app_package", context.getPackageName());
|
||||||
// for Android 8 and above
|
intent.putExtra("app_uid", context.getApplicationInfo().uid);
|
||||||
intent.putExtra("android.provider.extra.APP_PACKAGE", context.getPackageName());
|
// for Android 8 and above
|
||||||
activity.startActivity(intent);
|
intent.putExtra("android.provider.extra.APP_PACKAGE", context.getPackageName());
|
||||||
}
|
activity.startActivity(intent);
|
||||||
});
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (notificationMessage.getExtra() == null) {
|
if (notificationMessage.getExtra() == null) {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class LogUtils {
|
|||||||
String[] exec = new String[]{"logcat", "-c"};
|
String[] exec = new String[]{"logcat", "-c"};
|
||||||
Runtime.getRuntime().exec(exec).waitFor();
|
Runtime.getRuntime().exec(exec).waitFor();
|
||||||
|
|
||||||
exec = new String[]{"logcat", "-v", "UTC", "-D"};
|
exec = new String[]{"logcat", "-v", "color", "UTC-8"};
|
||||||
|
|
||||||
Process process = Runtime.getRuntime().exec(exec);
|
Process process = Runtime.getRuntime().exec(exec);
|
||||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||||
@@ -55,6 +55,7 @@ public class LogUtils {
|
|||||||
writer = new PrintWriter(os);
|
writer = new PrintWriter(os);
|
||||||
while ((line = bufferedReader.readLine()) != null) {
|
while ((line = bufferedReader.readLine()) != null) {
|
||||||
writer.append(line).write("\n");
|
writer.append(line).write("\n");
|
||||||
|
writer.flush();
|
||||||
}
|
}
|
||||||
writer.flush();
|
writer.flush();
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|||||||
BIN
app/src/main/res/drawable/no_banner.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
@@ -1,4 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">PDLIVE</string>
|
<string name="app_name">PDLIVE</string>
|
||||||
|
<string name="leak_canary_test_class_name">assertk.Assert</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -86,7 +86,7 @@ public class TieZhiAdapter extends RecyclerView.Adapter<TieZhiAdapter.Vh> {
|
|||||||
TiUtils.unzip(file, targetDir);
|
TiUtils.unzip(file, targetDir);
|
||||||
bean.setDownloadSuccess(mContext);
|
bean.setDownloadSuccess(mContext);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
ToastUtil.show(WordUtil.getString(R.string.tiezhi_download_failed));
|
ToastUtil.show(mContext.getString(R.string.tiezhi_download_failed));
|
||||||
bean.setDownloading(false);
|
bean.setDownloading(false);
|
||||||
} finally {
|
} finally {
|
||||||
file.delete();
|
file.delete();
|
||||||
@@ -103,7 +103,7 @@ public class TieZhiAdapter extends RecyclerView.Adapter<TieZhiAdapter.Vh> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
ToastUtil.show(WordUtil.getString(R.string.tiezhi_download_failed));
|
ToastUtil.show(mContext.getString(R.string.tiezhi_download_failed));
|
||||||
bean.setDownloading(false);
|
bean.setDownloading(false);
|
||||||
notifyItemChanged(position, Constants.PAYLOAD);
|
notifyItemChanged(position, Constants.PAYLOAD);
|
||||||
mLoadingTaskMap.remove(position);
|
mLoadingTaskMap.remove(position);
|
||||||
|
|||||||
@@ -154,14 +154,16 @@ dependencies {
|
|||||||
//腾讯im
|
//腾讯im
|
||||||
api 'com.tencent.imsdk:imsdk-plus:5.4.666'
|
api 'com.tencent.imsdk:imsdk-plus:5.4.666'
|
||||||
api 'com.google.code.gson:gson:2.8.8'
|
api 'com.google.code.gson:gson:2.8.8'
|
||||||
api 'cn.rongcloud.sdk:rtc_lib:5.2.5.8' // 音视频通话基础能力库
|
api 'cn.rongcloud.sdk:rtc_lib:5.2.0' // 音视频通话基础能力库
|
||||||
|
//此处以集成 5.1.2 版本为例
|
||||||
|
api 'cn.rongcloud.sdk:im_lib:5.2.0.2'
|
||||||
|
|
||||||
//此处以集成 5.1.2 版本为例
|
//此处以集成 5.1.2 版本为例
|
||||||
api 'cn.rongcloud.sdk:im_lib:5.2.5.4' // 即时通讯基础能力库
|
|
||||||
api 'cn.rongcloud.sdk:im_kit:5.2.5.4' // 即时通讯 UI 基础组件
|
api 'cn.rongcloud.sdk:im_kit:5.2.5.4' // 即时通讯 UI 基础组件
|
||||||
//融云小视频模块
|
//融云小视频模块
|
||||||
api 'cn.rongcloud.sdk:sight:5.2.5.4'
|
api 'cn.rongcloud.sdk:sight:5.2.5.4'
|
||||||
api 'com.facebook.android:facebook-android-sdk:15.0.1'
|
api 'com.facebook.android:facebook-android-sdk:15.2.0'
|
||||||
implementation 'com.facebook.android:facebook-android-sdk:15.0.1'
|
implementation 'com.facebook.android:facebook-android-sdk:15.2.0'
|
||||||
|
|
||||||
api('com.twitter.sdk.android:twitter-core:3.1.1@aar') {
|
api('com.twitter.sdk.android:twitter-core:3.1.1@aar') {
|
||||||
transitive = true
|
transitive = true
|
||||||
@@ -187,8 +189,6 @@ dependencies {
|
|||||||
api files('libs/Msc.jar')
|
api files('libs/Msc.jar')
|
||||||
|
|
||||||
api 'com.github.li-xiaojun:XPopup:2.9.1'
|
api 'com.github.li-xiaojun:XPopup:2.9.1'
|
||||||
//app-updater
|
|
||||||
api 'com.github.jenly1314.AppUpdater:app-updater:1.1.3'
|
api 'com.github.shenbengit:PagerGridLayoutManager:1.1.7'
|
||||||
//app-dialog
|
|
||||||
api 'com.github.jenly1314.AppUpdater:app-dialog:1.1.3'
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,8 +32,9 @@
|
|||||||
android:resource="@xml/file_paths" />
|
android:resource="@xml/file_paths" />
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
<!--支付宝-->
|
支付宝
|
||||||
<activity
|
<activity
|
||||||
android:name="com.alipay.sdk.app.H5PayActivity"
|
android:name="com.alipay.sdk.app.H5PayActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
|
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
|
||||||
@@ -46,7 +47,8 @@
|
|||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:windowSoftInputMode="adjustResize|stateHidden"></activity>
|
android:windowSoftInputMode="adjustResize|stateHidden"></activity>
|
||||||
<!--支付宝 end-->
|
支付宝 end
|
||||||
|
-->
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.yunbao.common.activity.ErrorActivity"
|
android:name="com.yunbao.common.activity.ErrorActivity"
|
||||||
|
|||||||
@@ -383,7 +383,7 @@ public class CommonAppConfig {
|
|||||||
public String getAppName() {
|
public String getAppName() {
|
||||||
if (TextUtils.isEmpty(mAppName)) {
|
if (TextUtils.isEmpty(mAppName)) {
|
||||||
int res = CommonAppContext.sInstance.getResources().getIdentifier("app_name", "string", "myname.pdlive.shayu");
|
int res = CommonAppContext.sInstance.getResources().getIdentifier("app_name", "string", "myname.pdlive.shayu");
|
||||||
mAppName = WordUtil.getString(res);
|
mAppName =WordUtil.getString(res);
|
||||||
}
|
}
|
||||||
return mAppName;
|
return mAppName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,15 +74,20 @@ public class CommonAppContext extends MultiDexApplication {
|
|||||||
} else {
|
} else {
|
||||||
locale = getResources().getConfiguration().locale;
|
locale = getResources().getConfiguration().locale;
|
||||||
}
|
}
|
||||||
if (locale.getLanguage().equals("en")) {
|
if (locale.getLanguage().equals("zh")) {
|
||||||
lang = "english";
|
|
||||||
} else {
|
|
||||||
lang = "chinese";
|
lang = "chinese";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
lang = "english";
|
||||||
|
|
||||||
}
|
}
|
||||||
Log.i("lang", lang);
|
Log.i("lang", lang);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Activity getTopActivity() {
|
||||||
|
return activityWeakReference.get();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void attachBaseContext(Context base) {
|
protected void attachBaseContext(Context base) {
|
||||||
@@ -100,7 +105,7 @@ public class CommonAppContext extends MultiDexApplication {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityStarted(Activity activity) {
|
public void onActivityStarted(Activity activity) {
|
||||||
mCount++;
|
mCount++;
|
||||||
activityWeakReference=new WeakReference<>(activity);
|
activityWeakReference = new WeakReference<>(activity);
|
||||||
if (!mFront) {
|
if (!mFront) {
|
||||||
mFront = true;
|
mFront = true;
|
||||||
L.e("AppContext------->处于前台");
|
L.e("AppContext------->处于前台");
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class Constants {
|
|||||||
public static final String PAY_BUY_COIN_ALI = "Charge.getAliOrder";
|
public static final String PAY_BUY_COIN_ALI = "Charge.getAliOrder";
|
||||||
public static final String PAY_BUY_COIN_WX = "Charge.getWxOrder";
|
public static final String PAY_BUY_COIN_WX = "Charge.getWxOrder";
|
||||||
|
|
||||||
public static final String PACKAGE_NAME_ALI = "com.eg.android.AlipayGphone";//支付宝的包名
|
// public static final String PACKAGE_NAME_ALI = "com.eg.android.AlipayGphone";//支付宝的包名
|
||||||
public static final String PACKAGE_NAME_WX = "com.tencent.mm";//微信的包名
|
public static final String PACKAGE_NAME_WX = "com.tencent.mm";//微信的包名
|
||||||
public static final String PACKAGE_NAME_QQ = "com.tencent.mobileqq";//QQ的包名
|
public static final String PACKAGE_NAME_QQ = "com.tencent.mobileqq";//QQ的包名
|
||||||
public static final String LAT = "lat";
|
public static final String LAT = "lat";
|
||||||
@@ -132,6 +132,8 @@ public class Constants {
|
|||||||
public static final int LIVE_FUNC_MIC = 2013;//語音
|
public static final int LIVE_FUNC_MIC = 2013;//語音
|
||||||
public static final int LIVE_FUNC_WKS = 2014;//語音
|
public static final int LIVE_FUNC_WKS = 2014;//語音
|
||||||
public static final int LIVE_FUNC_ZSLK = 2015;//語音
|
public static final int LIVE_FUNC_ZSLK = 2015;//語音
|
||||||
|
public static final int LIVE_FUNC_RANDOM_PK = 2016;//随机PK
|
||||||
|
public static final int LIVE_ROBOT = 2017;//机器人
|
||||||
|
|
||||||
//socket
|
//socket
|
||||||
public static final String SOCKET_CONN = "conn";
|
public static final String SOCKET_CONN = "conn";
|
||||||
@@ -145,6 +147,7 @@ public class Constants {
|
|||||||
public static final String SOCKET_ALL_SERVER_NOTIFY = "AllServerNotify";//全服通知
|
public static final String SOCKET_ALL_SERVER_NOTIFY = "AllServerNotify";//全服通知
|
||||||
public static final String SOCKET_SEND_BARRAGE = "SendBarrage";//发弹幕
|
public static final String SOCKET_SEND_BARRAGE = "SendBarrage";//发弹幕
|
||||||
public static final String SOCKET_LIVE_DRPK = "LiveDRPK";//多人PK
|
public static final String SOCKET_LIVE_DRPK = "LiveDRPK";//多人PK
|
||||||
|
public static final String SOCKET_LIVE_DRPK_RANDOM = "LiveRandomPK";//随机PK
|
||||||
public static final String SOCKET_LEAVE_ROOM = "disconnect";//用户离开房间
|
public static final String SOCKET_LEAVE_ROOM = "disconnect";//用户离开房间
|
||||||
public static final String SOCKET_LIVE_END = "StartEndLive";//主播关闭直播
|
public static final String SOCKET_LIVE_END = "StartEndLive";//主播关闭直播
|
||||||
public static final String SOCKET_SYSTEM = "SystemNot";//系统消息
|
public static final String SOCKET_SYSTEM = "SystemNot";//系统消息
|
||||||
@@ -169,9 +172,17 @@ public class Constants {
|
|||||||
public static final String RECOMMEND_CARD_NOTIFY = "recommendCardNotify";//推荐卡通知消息
|
public static final String RECOMMEND_CARD_NOTIFY = "recommendCardNotify";//推荐卡通知消息
|
||||||
public static final String STAR_CHALLENGE_UPDATE = "starChallengeUpdate";//星级助力
|
public static final String STAR_CHALLENGE_UPDATE = "starChallengeUpdate";//星级助力
|
||||||
public static final String AI_AUTOMATIC_SPEECH = "aiAutomaticSpeech";//机器人助手
|
public static final String AI_AUTOMATIC_SPEECH = "aiAutomaticSpeech";//机器人助手
|
||||||
|
public static final String AI_AUTOMATIC_SPEECH_LIVE = "aiAutomaticSpeechNew";//机器人助手
|
||||||
public static final String STAR_CHALLENGE_UPGRADE_NOTIFY = "starChallengeUpgradeNotify";//星级挑战成功
|
public static final String STAR_CHALLENGE_UPGRADE_NOTIFY = "starChallengeUpgradeNotify";//星级挑战成功
|
||||||
public static final String SUPER_VISION = "supervision";//超级发言警告
|
public static final String SUPER_VISION = "supervision";//超级发言警告
|
||||||
public static final String PK_RANK_UPDATE = "RankingRankUpdate";//PK排位赛更新数据
|
public static final String PK_RANK_UPDATE = "RankingRankUpdate";//PK排位赛更新数据
|
||||||
|
public static final String CUSTOM_FULL_SERVICE_NOTIFY = "customFullServiceNotify";//全服通知
|
||||||
|
public static final String XYD_COMPLETE = "XydComplete";//心愿单完成通知
|
||||||
|
public static final String WISH_LIST_PROGRESS = "wishListProgress";//心愿单进度通知
|
||||||
|
public static final String LIVE_VOTE_CREATE="createVote";
|
||||||
|
public static final String LIVE_VOTE_UPDATE="updateVote";
|
||||||
|
public static final String LIVE_VOTE_END="endVote";
|
||||||
|
public static final String LIVE_PK_END="endPK";//结束PK,以这个PK获取到的参数为准
|
||||||
|
|
||||||
//游戏socket
|
//游戏socket
|
||||||
public static final String SOCKET_GAME_ZJH = "startGame";//炸金花
|
public static final String SOCKET_GAME_ZJH = "startGame";//炸金花
|
||||||
@@ -186,6 +197,7 @@ public class Constants {
|
|||||||
public static final String LOVE_CHECK = "LoveCheck";//热度卡消息
|
public static final String LOVE_CHECK = "LoveCheck";//热度卡消息
|
||||||
public static final String TRUMPET_NOTIFY = "TrumpetNotify";//全栈喇叭
|
public static final String TRUMPET_NOTIFY = "TrumpetNotify";//全栈喇叭
|
||||||
public static final String LuckyAngel = "LuckyCheck";//幸运天使
|
public static final String LuckyAngel = "LuckyCheck";//幸运天使
|
||||||
|
public static final String Lucky100Check = "Lucky100Check";//幸运天使
|
||||||
|
|
||||||
public static final int SOCKET_WHAT_CONN = 0;
|
public static final int SOCKET_WHAT_CONN = 0;
|
||||||
public static final int SOCKET_WHAT_DISCONN = 2;
|
public static final int SOCKET_WHAT_DISCONN = 2;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
import com.yunbao.common.interfaces.LifeCycleListener;
|
import com.yunbao.common.interfaces.LifeCycleListener;
|
||||||
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.ClickUtil;
|
import com.yunbao.common.utils.ClickUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -48,6 +49,7 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
Resources res = super.getResources();
|
Resources res = super.getResources();
|
||||||
Configuration config = new Configuration();
|
Configuration config = new Configuration();
|
||||||
config.setToDefaults();
|
config.setToDefaults();
|
||||||
|
config.locale = IMLoginManager.get(this).getLocaleLanguage();
|
||||||
res.updateConfiguration(config, res.getDisplayMetrics());
|
res.updateConfiguration(config, res.getDisplayMetrics());
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@@ -55,6 +57,7 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
create();
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
if (intent != null) {
|
if (intent != null) {
|
||||||
isFullWindow = getIntent().getBooleanExtra("isFull", false);
|
isFullWindow = getIntent().getBooleanExtra("isFull", false);
|
||||||
@@ -86,6 +89,9 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
protected void main() {
|
protected void main() {
|
||||||
|
|
||||||
|
}
|
||||||
|
protected void create(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isStatusBarWhite() {
|
protected boolean isStatusBarWhite() {
|
||||||
|
|||||||
@@ -60,6 +60,6 @@ public class ErrorActivity extends AbsActivity {
|
|||||||
ClipboardManager clipboardManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
|
ClipboardManager clipboardManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||||
ClipData clipData = ClipData.newPlainText("text", mErrorInfo);
|
ClipData clipData = ClipData.newPlainText("text", mErrorInfo);
|
||||||
clipboardManager.setPrimaryClip(clipData);
|
clipboardManager.setPrimaryClip(clipData);
|
||||||
ToastUtil.show(WordUtil.getString(R.string.copy_success));
|
ToastUtil.show(mContext.getString(R.string.copy_success));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.yunbao.common.activity;
|
package com.yunbao.common.activity;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -22,21 +23,32 @@ import android.widget.ProgressBar;
|
|||||||
|
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
|
import com.yunbao.common.CommonAppContext;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||||
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
|
import com.yunbao.common.http.live.LiveNetManager;
|
||||||
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.AndroidBug5497Workaround;
|
import com.yunbao.common.utils.AndroidBug5497Workaround;
|
||||||
|
import com.yunbao.common.utils.AppManager;
|
||||||
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.utils.DeviceUtils;
|
import com.yunbao.common.utils.DeviceUtils;
|
||||||
import com.yunbao.common.utils.DpUtil;
|
import com.yunbao.common.utils.DpUtil;
|
||||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||||
import com.yunbao.common.utils.L;
|
import com.yunbao.common.utils.L;
|
||||||
|
import com.yunbao.common.utils.RouteUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.views.HintCustomPopup;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cxf on 2018/9/25.
|
* Created by cxf on 2018/9/25.
|
||||||
*/
|
*/
|
||||||
@@ -63,6 +75,7 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
protected void main() {
|
protected void main() {
|
||||||
String url = getIntent().getStringExtra(Constants.URL);
|
String url = getIntent().getStringExtra(Constants.URL);
|
||||||
L.e("H5--->" + url);
|
L.e("H5--->" + url);
|
||||||
|
Bus.getOn(this);
|
||||||
LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
|
LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
|
||||||
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
|
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
|
||||||
btnEdit = (ImageView) findViewById(R.id.btn_edit);
|
btnEdit = (ImageView) findViewById(R.id.btn_edit);
|
||||||
@@ -73,7 +86,7 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
|
|
||||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||||
params.topMargin = DpUtil.dp2px(1);
|
params.topMargin = DpUtil.dp2px(1);
|
||||||
// mWebView.setLayoutParams(params);
|
// mWebView.setLayoutParams(params);
|
||||||
//mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);
|
//mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);
|
||||||
mWebView.setWebViewClient(new WebViewClient() {
|
mWebView.setWebViewClient(new WebViewClient() {
|
||||||
@Override
|
@Override
|
||||||
@@ -96,9 +109,11 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
if (url.contains("for")) {
|
if (url.contains("for")) {
|
||||||
mWebView.loadUrl("javascript:goAnchorTab()");
|
mWebView.loadUrl("javascript:goAnchorTab()");
|
||||||
}
|
}
|
||||||
//屏幕高度-ft_title的paddingTop
|
//真实屏幕高度-(ft_title的高度+导航栏高度)
|
||||||
int height = DeviceUtils.getScreenHeight(mContext)-DpUtil.dp2px(24);
|
int height = DeviceUtils.getScreenRealHeight(mContext) - DpUtil.dp2px(72) - getCurrentNavigationBarHeight(mContext);
|
||||||
view.loadUrl("javascript:window.androidObject.setHeight("+height+",0,false)");
|
if (!navigationGestureEnabled(mContext)) {
|
||||||
|
view.loadUrl("javascript:window.androidObject.setHeight(" + height + ",0,false)");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -182,7 +197,7 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
|
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
|
||||||
}
|
}
|
||||||
intent.setType("image/*");
|
intent.setType("image/*");
|
||||||
startActivityForResult(Intent.createChooser(intent, WordUtil.getString(R.string.choose_flie)), CHOOSE);
|
startActivityForResult(Intent.createChooser(intent, mContext.getString(R.string.choose_flie)), CHOOSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||||
@@ -232,13 +247,13 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Intent intent = new Intent(context, WebViewActivity.class);
|
Intent intent = new Intent(context, WebViewActivity.class);
|
||||||
intent.putExtra(Constants.URL, url);
|
intent.putExtra(Constants.URL, url + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void forward(Context context, String url) {
|
public static void forward(Context context, String url) {
|
||||||
forward(context, url, true);
|
forward(context, url, true); }
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
@@ -252,6 +267,7 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
Constants.myIntoIndex = 0;
|
Constants.myIntoIndex = 0;
|
||||||
indexInto = 0;
|
indexInto = 0;
|
||||||
Constants.LoginKefu = true;
|
Constants.LoginKefu = true;
|
||||||
|
Bus.getOff(this);
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,5 +323,56 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||||
indexInto = event.getIndexInto();
|
indexInto = event.getIndexInto();
|
||||||
|
if (event.getMethod().equals("androidInviteShare")) {
|
||||||
|
try {
|
||||||
|
Class<?> clz = mContext.getClassLoader().loadClass("com.yunbao.share.ui.InvitePopDialog");
|
||||||
|
Object invite = clz.getConstructor(Context.class).newInstance(mContext);
|
||||||
|
invite = invite.getClass().getMethod("setUrl", String.class).invoke(invite, event.getData());
|
||||||
|
assert invite != null;
|
||||||
|
invite.getClass().getMethod("showDialog").invoke(invite);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
} else if (TextUtils.equals(event.getMethod(), "clickLogOffAccount")) {
|
||||||
|
new XPopup.Builder(mContext)
|
||||||
|
.asCustom(new HintCustomPopup(mContext,
|
||||||
|
mContext.getString(R.string.delete_account1),
|
||||||
|
mContext.getString(R.string.delete_account2))
|
||||||
|
.setLiveOpenOk(mContext.getString(R.string.delete_account3))
|
||||||
|
.setLiveOpenCancel(mContext.getString(R.string.cancel))
|
||||||
|
.setCallBack(new HintCustomPopup.HintCustomCallBack() {
|
||||||
|
@Override
|
||||||
|
public void onSure() {
|
||||||
|
LiveNetManager.get(mContext).
|
||||||
|
setLogOff(new HttpCallback<String>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(String data) {
|
||||||
|
Stack<Activity> allActivityStacks = AppManager.getInstance().getAllActivityStacks();
|
||||||
|
for (int i = 0; i < allActivityStacks.size(); i++) {
|
||||||
|
if (!(allActivityStacks.get(i) instanceof WebViewActivity)) {
|
||||||
|
allActivityStacks.get(i).finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
IMLoginManager.get(mContext).logout(mContext);
|
||||||
|
CommonAppConfig.getInstance().clearLoginInfo();
|
||||||
|
mContext.finish();
|
||||||
|
RouteUtil.forwardLoginActivity();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
.show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class ChatChargeCoinAdapter extends RecyclerView.Adapter<ChatChargeCoinAd
|
|||||||
mList = list;
|
mList = list;
|
||||||
mCoinName = CommonAppConfig.getInstance().getCoinName();
|
mCoinName = CommonAppConfig.getInstance().getCoinName();
|
||||||
mGoldCoinName = CommonAppConfig.getInstance().getGoldCoinName();
|
mGoldCoinName = CommonAppConfig.getInstance().getGoldCoinName();
|
||||||
mGiveString = WordUtil.getString(R.string.coin_give);
|
mGiveString = context.getString(R.string.coin_give);
|
||||||
mOnClickListener = new View.OnClickListener() {
|
mOnClickListener = new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.yunbao.common.bean.AnchorRecommendItemModel;
|
|||||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||||
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
||||||
import com.yunbao.common.http.main.MainNetManager;
|
import com.yunbao.common.http.main.MainNetManager;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.common.views.DrawerRecommendViewHolder;
|
import com.yunbao.common.views.DrawerRecommendViewHolder;
|
||||||
import com.yunbao.common.views.DrawerTaskViewHolder;
|
import com.yunbao.common.views.DrawerTaskViewHolder;
|
||||||
import com.yunbao.common.views.FunGamesViewHolder;
|
import com.yunbao.common.views.FunGamesViewHolder;
|
||||||
@@ -121,6 +122,7 @@ public class CustomDrawerPopupAdapter extends RecyclerView.Adapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(String error) {
|
public void onError(String error) {
|
||||||
|
ToastUtil.show(R.string.net_error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.yunbao.common.adapter;
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -48,12 +49,22 @@ public class DrawerTaskAdapter extends RecyclerView.Adapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return 2;
|
if (child.size()>3){
|
||||||
|
return 3;
|
||||||
|
}else {
|
||||||
|
return child.size();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateData(List<CustomSidebarChildModel> mChild) {
|
public void updateData(List<CustomSidebarChildModel> mChild) {
|
||||||
child.clear();
|
child.clear();
|
||||||
child.addAll(mChild);
|
child.addAll(mChild);
|
||||||
|
// for (CustomSidebarChildModel childModel : mChild) {
|
||||||
|
// if (TextUtils.equals("1", childModel.getIsShow())) {
|
||||||
|
// child.add(childModel);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,164 @@
|
|||||||
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.bean.WishModel;
|
||||||
|
import com.yunbao.common.event.LiveNewWishListCloseEvent;
|
||||||
|
import com.yunbao.common.utils.Bus;
|
||||||
|
import com.yunbao.common.views.DayWishItemViewHolder;
|
||||||
|
import com.yunbao.common.views.LunarWishItemViewHolder;
|
||||||
|
import com.yunbao.common.views.SeasonalWishItemViewHolder;
|
||||||
|
import com.yunbao.common.views.WeekWishItemViewHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class LiveNewWishAdapter extends RecyclerView.Adapter {
|
||||||
|
private int type = 0;
|
||||||
|
private List<WishModel> wishList = new ArrayList<>();
|
||||||
|
|
||||||
|
public void addData(List<WishModel> wishModelList, int type) {
|
||||||
|
this.type = type;
|
||||||
|
wishList.clear();
|
||||||
|
wishList.addAll(wishModelList);
|
||||||
|
wishList.add(null);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addGiftListModel(WishModel model) {
|
||||||
|
switch (type) {
|
||||||
|
case 1:
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(true));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(true));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(true));
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
wishList.add(0, model);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<WishModel> getWishList() {
|
||||||
|
|
||||||
|
return wishList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
if (type == 1) {
|
||||||
|
View dayWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_day_wish, parent, false);
|
||||||
|
return new DayWishItemViewHolder(dayWish);
|
||||||
|
} else if (type == 2) {
|
||||||
|
View weekWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_week_wish, parent, false);
|
||||||
|
return new WeekWishItemViewHolder(weekWish);
|
||||||
|
} else if (type == 3) {
|
||||||
|
View lunarWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lunar_wish, parent, false);
|
||||||
|
return new LunarWishItemViewHolder(lunarWish);
|
||||||
|
} else {
|
||||||
|
View seasonalWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_seasonal_wish, parent, false);
|
||||||
|
return new SeasonalWishItemViewHolder(seasonalWish);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
|
if (position == wishList.size()) return;
|
||||||
|
if (holder instanceof DayWishItemViewHolder) {
|
||||||
|
DayWishItemViewHolder dayWishItemViewHolder = (DayWishItemViewHolder) holder;
|
||||||
|
dayWishItemViewHolder.steDayWishData(wishList.get(position), position, new DayWishItemViewHolder.DayWishItemListener() {
|
||||||
|
@Override
|
||||||
|
public void onDelete(int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate(WishModel model, int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
wishList.add(index, model);
|
||||||
|
notifyItemChanged(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (holder instanceof WeekWishItemViewHolder) {
|
||||||
|
WeekWishItemViewHolder weekWishItemViewHolder = (WeekWishItemViewHolder) holder;
|
||||||
|
weekWishItemViewHolder.steWeekWishData(wishList.get(position), position, new WeekWishItemViewHolder.WeekWishItemListener() {
|
||||||
|
@Override
|
||||||
|
public void onDelete(int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate(WishModel model, int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
wishList.add(index, model);
|
||||||
|
notifyItemChanged(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (holder instanceof LunarWishItemViewHolder) {
|
||||||
|
LunarWishItemViewHolder lunarWishItemViewHolder = (LunarWishItemViewHolder) holder;
|
||||||
|
lunarWishItemViewHolder.steLunarWishData(wishList.get(position), position, new LunarWishItemViewHolder.LunarWishItemListener() {
|
||||||
|
@Override
|
||||||
|
public void onDelete(int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate(WishModel model, int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
wishList.add(index, model);
|
||||||
|
notifyItemChanged(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (holder instanceof SeasonalWishItemViewHolder) {
|
||||||
|
SeasonalWishItemViewHolder seasonalWishItemViewHolder = (SeasonalWishItemViewHolder) holder;
|
||||||
|
seasonalWishItemViewHolder.steSeasonalWish(wishList.get(position), position, new SeasonalWishItemViewHolder.SeasonalWishItemListener() {
|
||||||
|
@Override
|
||||||
|
public void onDelete(int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate(WishModel model, int index) {
|
||||||
|
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
|
||||||
|
wishList.remove(index);
|
||||||
|
wishList.add(index, model);
|
||||||
|
notifyItemChanged(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return wishList.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.bean.GiftListModel;
|
||||||
|
import com.yunbao.common.event.LiveNewWishGiftEvent;
|
||||||
|
import com.yunbao.common.utils.Bus;
|
||||||
|
import com.yunbao.common.views.LiveNewWishGiftViewHolder;
|
||||||
|
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class LiveNewWishGiftAdapter extends RecyclerView.Adapter {
|
||||||
|
private List<GiftListModel> giftListModels = new ArrayList<>();
|
||||||
|
|
||||||
|
public LiveNewWishGiftAdapter(List<GiftListModel> giftListModels) {
|
||||||
|
this.giftListModels = giftListModels;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
View dayWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gitf_wish, parent, false);
|
||||||
|
return new LiveNewWishGiftViewHolder(dayWish);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int index = -1;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
|
||||||
|
LiveNewWishGiftViewHolder wishGiftViewHolder = (LiveNewWishGiftViewHolder) holder;
|
||||||
|
wishGiftViewHolder.setData(giftListModels.get(position), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||||
|
@Override
|
||||||
|
public void onViewClicks() {
|
||||||
|
index = position;
|
||||||
|
notifyDataSetChanged();
|
||||||
|
Bus.get().post(new LiveNewWishGiftEvent().setModel(giftListModels.get(position)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
wishGiftViewHolder.onSelect(index == position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return giftListModels.size();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class LiveNewWishListAdapter extends FragmentStateAdapter {
|
||||||
|
private List<Fragment> list = new ArrayList<>();
|
||||||
|
|
||||||
|
public LiveNewWishListAdapter(@NonNull FragmentActivity fragmentActivity, List<Fragment> list) {
|
||||||
|
super(fragmentActivity);
|
||||||
|
this.list = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Fragment createFragment(int position) {
|
||||||
|
return list.get(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return list.size();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.bean.ListInfoMessageModel;
|
||||||
|
import com.yunbao.common.views.LiveSystemMessageViewHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主播消息中心适配器
|
||||||
|
*/
|
||||||
|
public class LiveSystemMessageAdapter extends RecyclerView.Adapter {
|
||||||
|
private Context mContext;
|
||||||
|
private LayoutInflater mInflater;
|
||||||
|
private List<ListInfoMessageModel> listInfoMessageModels = new ArrayList<>();
|
||||||
|
|
||||||
|
public LiveSystemMessageAdapter(Context mContext) {
|
||||||
|
this.mContext = mContext;
|
||||||
|
mInflater = LayoutInflater.from(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
return new LiveSystemMessageViewHolder(mInflater.inflate(R.layout.view_live_system_message, parent, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
|
LiveSystemMessageViewHolder messageViewHolder = (LiveSystemMessageViewHolder) holder;
|
||||||
|
messageViewHolder.setViewData(listInfoMessageModels.get(position));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return listInfoMessageModels.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addData(List<ListInfoMessageModel> list) {
|
||||||
|
listInfoMessageModels.addAll(list);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.bean.LiveAiRobotBean;
|
||||||
|
import com.yunbao.common.views.RobotMessageViewHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class RobotMessageAdapter extends RecyclerView.Adapter {
|
||||||
|
private List<LiveAiRobotBean.Message> messageList = new ArrayList<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
View robotMessageView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_robot_message, parent, false);
|
||||||
|
return new RobotMessageViewHolder(robotMessageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
|
RobotMessageViewHolder messageViewHolder = (RobotMessageViewHolder) holder;
|
||||||
|
messageViewHolder.setData(messageList.get(position), position + 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return messageList.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setDataAll(List<LiveAiRobotBean.Message> messages) {
|
||||||
|
messageList.clear();
|
||||||
|
messageList.addAll(messages);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除数据
|
||||||
|
public void removeData(int position) {
|
||||||
|
messageList.remove(position);
|
||||||
|
//删除动画
|
||||||
|
notifyItemRemoved(position);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.yunbao.common.adapter;
|
||||||
|
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.bean.LiveAiRobotBean;
|
||||||
|
import com.yunbao.common.views.RobotSayHelloViewHoler;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class RobotSayHelloAdapter extends RecyclerView.Adapter {
|
||||||
|
private List<LiveAiRobotBean.Message> messageList = new ArrayList<>();
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
View robotSayHelloView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_robot_message, parent, false);
|
||||||
|
return new RobotSayHelloViewHoler(robotSayHelloView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
|
RobotSayHelloViewHoler robotSayHelloViewHoler = (RobotSayHelloViewHoler) holder;
|
||||||
|
robotSayHelloViewHoler.setData(messageList.get(position), position + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return messageList.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setDataAll(List<LiveAiRobotBean.Message> messages) {
|
||||||
|
messageList.clear();
|
||||||
|
messageList.addAll(messages);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除数据
|
||||||
|
public void removeData(int position) {
|
||||||
|
messageList.remove(position);
|
||||||
|
//删除动画
|
||||||
|
notifyItemRemoved(position);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.annotation.JSONField;
|
|||||||
public class AdBean {
|
public class AdBean {
|
||||||
private String mUrl;
|
private String mUrl;
|
||||||
private String mLink;
|
private String mLink;
|
||||||
|
private int animation;//是否使用过度动画
|
||||||
|
|
||||||
@JSONField(name = "thumb")
|
@JSONField(name = "thumb")
|
||||||
public String getUrl() {
|
public String getUrl() {
|
||||||
@@ -26,4 +27,12 @@ public class AdBean {
|
|||||||
public void setLink(String link) {
|
public void setLink(String link) {
|
||||||
mLink = link;
|
mLink = link;
|
||||||
}
|
}
|
||||||
|
@JSONField(name = "animation")
|
||||||
|
public int getAnimation() {
|
||||||
|
return animation;
|
||||||
|
}
|
||||||
|
@JSONField(name = "animation")
|
||||||
|
public void setAnimation(int animation) {
|
||||||
|
this.animation = animation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.yunbao.common.bean;
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.alibaba.fastjson.annotation.JSONField;
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cxf on 2019/3/30.
|
* Created by cxf on 2019/3/30.
|
||||||
@@ -15,7 +18,81 @@ public class BannerBean {
|
|||||||
private String mIntoUrl;
|
private String mIntoUrl;
|
||||||
private int type;
|
private int type;
|
||||||
private String name;
|
private String name;
|
||||||
private int activityId=0;
|
private int activityId = 0;
|
||||||
|
private int mIconRes;
|
||||||
|
//心愿单展示数据
|
||||||
|
@SerializedName("wishlist_icon")
|
||||||
|
private String wishlistIcon;
|
||||||
|
@SerializedName("wishlist_num")
|
||||||
|
private String wishlistNum;
|
||||||
|
@SerializedName("wishlist_progress")
|
||||||
|
private String wishlistProgress;
|
||||||
|
@SerializedName("wishlist_name")
|
||||||
|
private String wishlistName;
|
||||||
|
private Object data;//用来存储任意bean
|
||||||
|
|
||||||
|
public String getmImageUrl() {
|
||||||
|
return mImageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setmImageUrl(String mImageUrl) {
|
||||||
|
this.mImageUrl = mImageUrl;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getmLink() {
|
||||||
|
return mLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setmLink(String mLink) {
|
||||||
|
this.mLink = mLink;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getmIconRes() {
|
||||||
|
return mIconRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setmIconRes(int mIconRes) {
|
||||||
|
this.mIconRes = mIconRes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWishlistIcon() {
|
||||||
|
return wishlistIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setWishlistIcon(String wishlistIcon) {
|
||||||
|
this.wishlistIcon = wishlistIcon;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWishlistNum() {
|
||||||
|
return wishlistNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setWishlistNum(String wishlistNum) {
|
||||||
|
this.wishlistNum = wishlistNum;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWishlistProgress() {
|
||||||
|
return wishlistProgress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setWishlistProgress(String wishlistProgress) {
|
||||||
|
this.wishlistProgress = wishlistProgress;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWishlistName() {
|
||||||
|
return wishlistName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BannerBean setWishlistName(String wishlistName) {
|
||||||
|
this.wishlistName = wishlistName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private StarChallengeStatusModel model;
|
private StarChallengeStatusModel model;
|
||||||
|
|
||||||
@@ -79,27 +156,49 @@ public class BannerBean {
|
|||||||
public int getType() {
|
public int getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSONField(name = "type")
|
@JSONField(name = "type")
|
||||||
public void setType(int type) {
|
public void setType(int type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSONField(name = "name")
|
@JSONField(name = "name")
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSONField(name = "name")
|
@JSONField(name = "name")
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSONField(name = "active_id")
|
@JSONField(name = "active_id")
|
||||||
public int getActivityId() {
|
public int getActivityId() {
|
||||||
return activityId;
|
return activityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSONField(name = "active_id")
|
@JSONField(name = "active_id")
|
||||||
public void setActivityId(int activityId) {
|
public void setActivityId(int activityId) {
|
||||||
this.activityId = activityId;
|
this.activityId = activityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getIconRes() {
|
||||||
|
return mIconRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIconRes(int mIconRes) {
|
||||||
|
this.mIconRes = mIconRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(Object data) {
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "BannerBean{" +
|
return "BannerBean{" +
|
||||||
@@ -110,6 +209,12 @@ public class BannerBean {
|
|||||||
", mIntoUrl='" + mIntoUrl + '\'' +
|
", mIntoUrl='" + mIntoUrl + '\'' +
|
||||||
", type=" + type +
|
", type=" + type +
|
||||||
", name='" + name + '\'' +
|
", name='" + name + '\'' +
|
||||||
|
", activityId=" + activityId +
|
||||||
|
", mIconRes=" + mIconRes +
|
||||||
|
", wishlistIcon='" + wishlistIcon + '\'' +
|
||||||
|
", wishlistNum='" + wishlistNum + '\'' +
|
||||||
|
", wishlistProgress='" + wishlistProgress + '\'' +
|
||||||
|
", wishlistName='" + wishlistName + '\'' +
|
||||||
", model=" + model +
|
", model=" + model +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,99 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class BlindBoxInfoModel extends BaseModel {
|
||||||
|
/**
|
||||||
|
* "info":[{"item_name":["麒麟勛章饰品","麒麟頭像框饰品","麒麟坐騎饰品","水晶项链礼物","夢幻水晶球礼物","心動泡泡礼物","蝴蝶少女礼物","金色唱片礼物","鑽石禮盒礼物","紙花船礼物"],"threshold_value":268,"threshold_dress_name":"麒麟坐騎","dress_threshold_value":0,"blind_box_type":1,"blind_box_id":1636},{"item_name":["金鳳勛章饰品","金鳳頭像框饰品","金鳳坐騎饰品","浪漫氣球礼物","捕夢網礼物","仙女棒礼物","藍寶石鈴鐺礼物","榮耀星礼物","童話屋礼物","夢幻許願池礼物"],"threshold_value":198,"threshold_dress_name":"金鳳坐騎","dress_threshold_value":0,"blind_box_type":2,"blind_box_id":1637},{"item_name":["神龍勛章饰品","神龍頭像框饰品","神龍坐騎饰品","水晶玫瑰礼物","sweet香水礼物","甜蜜熱氣球礼物","風鈴舞動礼物","音樂噴泉礼物","星空列車礼物","漂洋過海來看你礼物"],"threshold_value":128,"threshold_dress_name":"神龍坐騎","dress_threshold_value":0,"blind_box_type":3,"blind_box_id":1638}]
|
||||||
|
*/
|
||||||
|
@SerializedName("item_name")
|
||||||
|
private List<String> itemName;
|
||||||
|
@SerializedName("threshold_value")
|
||||||
|
private String thresholdValue = "0";
|
||||||
|
@SerializedName("threshold_dress_name")
|
||||||
|
private String thresholdDressName;
|
||||||
|
@SerializedName("dress_threshold_value")
|
||||||
|
private String dressThresholdValue;
|
||||||
|
@SerializedName("blind_box_type")
|
||||||
|
private String blindBoxType;
|
||||||
|
@SerializedName("blind_box_id")
|
||||||
|
private String blindBoxId;
|
||||||
|
@SerializedName("blind_box_swf")
|
||||||
|
private String blindBoxSwf;
|
||||||
|
@SerializedName("threshold_effect_src")
|
||||||
|
private String thresholdEffectSrc;
|
||||||
|
|
||||||
|
public String getThresholdEffectSrc() {
|
||||||
|
return thresholdEffectSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setThresholdEffectSrc(String thresholdEffectSrc) {
|
||||||
|
this.thresholdEffectSrc = thresholdEffectSrc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBlindBoxSwf() {
|
||||||
|
return blindBoxSwf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setBlindBoxSwf(String blindBoxSwf) {
|
||||||
|
this.blindBoxSwf = blindBoxSwf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getItemName() {
|
||||||
|
return itemName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setItemName(List<String> itemName) {
|
||||||
|
this.itemName = itemName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getThresholdValue() {
|
||||||
|
return thresholdValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setThresholdValue(String thresholdValue) {
|
||||||
|
this.thresholdValue = thresholdValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getThresholdDressName() {
|
||||||
|
return thresholdDressName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setThresholdDressName(String thresholdDressName) {
|
||||||
|
this.thresholdDressName = thresholdDressName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDressThresholdValue() {
|
||||||
|
return dressThresholdValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setDressThresholdValue(String dressThresholdValue) {
|
||||||
|
this.dressThresholdValue = dressThresholdValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBlindBoxType() {
|
||||||
|
return blindBoxType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setBlindBoxType(String blindBoxType) {
|
||||||
|
this.blindBoxType = blindBoxType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBlindBoxId() {
|
||||||
|
return blindBoxId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlindBoxInfoModel setBlindBoxId(String blindBoxId) {
|
||||||
|
this.blindBoxId = blindBoxId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.yunbao.common.bean;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,7 +15,7 @@ public class CrashSaveBean {
|
|||||||
private long enterRoom;//进入房间次数
|
private long enterRoom;//进入房间次数
|
||||||
private long slidingRoom;//滑动直播间次数
|
private long slidingRoom;//滑动直播间次数
|
||||||
private long playSvga;//加载播放svga次数
|
private long playSvga;//加载播放svga次数
|
||||||
private List<WeakReference<Activity>> activities;//Activity数量
|
private List<WeakReference<Activity>> activities = new ArrayList<>();//Activity数量
|
||||||
|
|
||||||
private CrashSaveBean() {
|
private CrashSaveBean() {
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,18 @@ public class CustomSidebarChildModel extends BaseModel {
|
|||||||
@SerializedName("activity_id")
|
@SerializedName("activity_id")
|
||||||
private String activityId;
|
private String activityId;
|
||||||
@SerializedName("flag")
|
@SerializedName("flag")
|
||||||
private String flag;
|
private String flag = "";
|
||||||
|
@SerializedName("is_show")
|
||||||
|
private String isShow;
|
||||||
|
|
||||||
|
public String getIsShow() {
|
||||||
|
return isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomSidebarChildModel setIsShow(String isShow) {
|
||||||
|
this.isShow = isShow;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getFlag() {
|
public String getFlag() {
|
||||||
return flag;
|
return flag;
|
||||||
|
|||||||
109
common/src/main/java/com/yunbao/common/bean/DiscountsModel.java
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 优惠卷
|
||||||
|
*/
|
||||||
|
public class DiscountsModel extends BaseModel {
|
||||||
|
//------------------贵族--------------------
|
||||||
|
public static final int TYPE_VISCOUNT=1;//子爵
|
||||||
|
public static final int TYPE_MARQUIS=2;//侯爵
|
||||||
|
public static final int TYPE_DUKE=3;//公爵
|
||||||
|
public static final int TYPE_KING=4;//国王
|
||||||
|
public static final int TYPE_EMPEROR=5;//皇帝
|
||||||
|
//------------------守护--------------------
|
||||||
|
public static final int TYPE_WEEKS=6;//周守护
|
||||||
|
public static final int TYPE_MONTH=7;//月守护
|
||||||
|
public static final int TYPE_YEARS=8;//月守护
|
||||||
|
|
||||||
|
@SerializedName("userCouponId")
|
||||||
|
private int userCouponID;
|
||||||
|
@SerializedName("num")
|
||||||
|
private int num;
|
||||||
|
@SerializedName("endTime")
|
||||||
|
private long endTime;
|
||||||
|
@SerializedName("img")
|
||||||
|
private String img;
|
||||||
|
@SerializedName("name")
|
||||||
|
private String name;
|
||||||
|
@SerializedName("discount")
|
||||||
|
private double discount;
|
||||||
|
@SerializedName("describe")
|
||||||
|
private String describe;
|
||||||
|
|
||||||
|
public DiscountsModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserCouponID() {
|
||||||
|
return userCouponID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserCouponID(int userCouponID) {
|
||||||
|
this.userCouponID = userCouponID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNum() {
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNum(int num) {
|
||||||
|
this.num = num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(long endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getImg() {
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setImg(String img) {
|
||||||
|
this.img = img;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getDiscount() {
|
||||||
|
return discount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDiscount(double discount) {
|
||||||
|
this.discount = discount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescribe() {
|
||||||
|
return describe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescribe(String describe) {
|
||||||
|
this.describe = describe;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "DiscountsModel{" +
|
||||||
|
"userCouponID=" + userCouponID +
|
||||||
|
", num=" + num +
|
||||||
|
", endTime=" + endTime +
|
||||||
|
", img='" + img + '\'' +
|
||||||
|
", name='" + name + '\'' +
|
||||||
|
", discount=" + discount +
|
||||||
|
", describe='" + describe + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.yunbao.common.bean;
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -103,12 +104,22 @@ public class EnterRoomInfoModel extends BaseModel {
|
|||||||
private String anchorGoodnum;
|
private String anchorGoodnum;
|
||||||
@SerializedName("jackpot_level")
|
@SerializedName("jackpot_level")
|
||||||
private String jackpotLevel="-1";
|
private String jackpotLevel="-1";
|
||||||
|
@SerializedName("live_vote")
|
||||||
|
private LiveRoomVoteModel voteModel;
|
||||||
|
|
||||||
public String getJackpotLevel() {
|
public String getJackpotLevel() {
|
||||||
|
|
||||||
return jackpotLevel;
|
return jackpotLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LiveRoomVoteModel getVoteModel() {
|
||||||
|
return voteModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoteModel(LiveRoomVoteModel voteModel) {
|
||||||
|
this.voteModel = voteModel;
|
||||||
|
}
|
||||||
|
|
||||||
public EnterRoomInfoModel setJackpotLevel(String jackpotLevel) {
|
public EnterRoomInfoModel setJackpotLevel(String jackpotLevel) {
|
||||||
this.jackpotLevel = jackpotLevel;
|
this.jackpotLevel = jackpotLevel;
|
||||||
return this;
|
return this;
|
||||||
@@ -475,6 +486,9 @@ public class EnterRoomInfoModel extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getIsconnection() {
|
public String getIsconnection() {
|
||||||
|
if(StringUtil.isEmpty(isconnection)){
|
||||||
|
isconnection="0";
|
||||||
|
}
|
||||||
return isconnection;
|
return isconnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,19 @@ public class EnterRoomNewModel extends BaseModel {
|
|||||||
private String isUseHotCard = "";//是否使用热度卡
|
private String isUseHotCard = "";//是否使用热度卡
|
||||||
@SerializedName("liveRoomActivity")
|
@SerializedName("liveRoomActivity")
|
||||||
private List<LiveRoomActivityModel> liveRoomActivityModels = new ArrayList<>();//活动列表
|
private List<LiveRoomActivityModel> liveRoomActivityModels = new ArrayList<>();//活动列表
|
||||||
|
@SerializedName("clarityType")
|
||||||
|
private int clarityType;
|
||||||
|
@SerializedName("wishListProgress")
|
||||||
|
private WishModel wishListProgress;
|
||||||
|
|
||||||
|
public WishModel getWishListProgress() {
|
||||||
|
return wishListProgress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EnterRoomNewModel setWishListProgress(WishModel wishListProgress) {
|
||||||
|
this.wishListProgress = wishListProgress;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public List<LiveRoomActivityModel> getLiveRoomActivityModels() {
|
public List<LiveRoomActivityModel> getLiveRoomActivityModels() {
|
||||||
return liveRoomActivityModels;
|
return liveRoomActivityModels;
|
||||||
@@ -109,4 +122,28 @@ public class EnterRoomNewModel extends BaseModel {
|
|||||||
this.isUseHotCard = isUseHotCard;
|
this.isUseHotCard = isUseHotCard;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getClarityType() {
|
||||||
|
return clarityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClarityType(int clarityType) {
|
||||||
|
this.clarityType = clarityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "EnterRoomNewModel{" +
|
||||||
|
"liveInfo=" + liveInfo +
|
||||||
|
", enterRoomInfo=" + enterRoomInfo +
|
||||||
|
", rankHour=" + rankHour +
|
||||||
|
", newPeopleTask=" + newPeopleTask +
|
||||||
|
", wishList=" + wishList +
|
||||||
|
", guardUserAvatar=" + guardUserAvatar +
|
||||||
|
", activeList=" + activeList +
|
||||||
|
", isUseHotCard='" + isUseHotCard + '\'' +
|
||||||
|
", liveRoomActivityModels=" + liveRoomActivityModels +
|
||||||
|
", clarityType=" + clarityType +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
public class GiftListModel extends BaseModel {
|
||||||
|
@SerializedName("name")
|
||||||
|
private String name;
|
||||||
|
@SerializedName("price")
|
||||||
|
private String price;
|
||||||
|
@SerializedName("img")
|
||||||
|
private String img;
|
||||||
|
@SerializedName("id")
|
||||||
|
private String id;
|
||||||
|
@SerializedName("gift_type")
|
||||||
|
private String giftType;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GiftListModel setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPrice() {
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GiftListModel setPrice(String price) {
|
||||||
|
this.price = price;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getImg() {
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GiftListModel setImg(String img) {
|
||||||
|
this.img = img;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GiftListModel setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGiftType() {
|
||||||
|
return giftType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GiftListModel setGiftType(String giftType) {
|
||||||
|
this.giftType = giftType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "GiftListModel{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", price='" + price + '\'' +
|
||||||
|
", img='" + img + '\'' +
|
||||||
|
", id='" + id + '\'' +
|
||||||
|
", giftType='" + giftType + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
|
||||||
|
public class HttpCallbackModel extends BaseModel {
|
||||||
|
private int code;
|
||||||
|
private String msg;
|
||||||
|
|
||||||
|
public HttpCallbackModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpCallbackModel(int code, String msg) {
|
||||||
|
this.code = code;
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMsg() {
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMsg(String msg) {
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "HttpCallbackModel{" +
|
||||||
|
"code=" + code +
|
||||||
|
", msg='" + msg + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class ListInfoMessageModel extends BaseModel {
|
||||||
|
@SerializedName("id")
|
||||||
|
private int id;
|
||||||
|
@SerializedName("title")
|
||||||
|
private String title;
|
||||||
|
@SerializedName("banner")
|
||||||
|
private String banner;
|
||||||
|
@SerializedName("content")
|
||||||
|
private String content;
|
||||||
|
@SerializedName("link")
|
||||||
|
private String link;
|
||||||
|
@SerializedName("addtime")
|
||||||
|
private String addtime;
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListInfoMessageModel setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListInfoMessageModel setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBanner() {
|
||||||
|
return banner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListInfoMessageModel setBanner(String banner) {
|
||||||
|
this.banner = banner;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListInfoMessageModel setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLink() {
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListInfoMessageModel setLink(String link) {
|
||||||
|
this.link = link;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAddtime() {
|
||||||
|
return addtime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListInfoMessageModel setAddtime(String addtime) {
|
||||||
|
this.addtime = addtime;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会话列表展示时间
|
||||||
|
*/
|
||||||
|
public String getLastDate(String type) {
|
||||||
|
if (!TextUtils.isEmpty(addtime) && !TextUtils.equals(addtime, "0")) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||||
|
Date currenTimeZone;
|
||||||
|
if (TextUtils.equals(type, "-1")) {
|
||||||
|
currenTimeZone = new Date(Long.parseLong(addtime));
|
||||||
|
} else {
|
||||||
|
currenTimeZone = new Date(Long.parseLong(addtime + "000"));
|
||||||
|
}
|
||||||
|
return sdf.format(currenTimeZone);
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
138
common/src/main/java/com/yunbao/common/bean/LiveAiRobotBean.java
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机器人bean
|
||||||
|
*/
|
||||||
|
public class LiveAiRobotBean extends BaseModel {
|
||||||
|
@SerializedName("ai_name")
|
||||||
|
private String name;
|
||||||
|
@SerializedName("ai_state")
|
||||||
|
private int status;//1=开 0=关
|
||||||
|
@SerializedName("ai_time")
|
||||||
|
private int time;
|
||||||
|
@SerializedName("ai_sayhi")
|
||||||
|
private int autoSeyHiNumber;// 自动打招呼已配置数量
|
||||||
|
@SerializedName("ai_gz")
|
||||||
|
private int autoRequestFollowNumber;//自动求关注已配置数量
|
||||||
|
|
||||||
|
public LiveAiRobotBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(int status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTime() {
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTime(int time) {
|
||||||
|
this.time = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAutoSeyHiNumber() {
|
||||||
|
return autoSeyHiNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoSeyHiNumber(int autoSeyHiNumber) {
|
||||||
|
this.autoSeyHiNumber = autoSeyHiNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAutoRequestFollowNumber() {
|
||||||
|
return autoRequestFollowNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoRequestFollowNumber(int autoRequestFollowNumber) {
|
||||||
|
this.autoRequestFollowNumber = autoRequestFollowNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveAiRobotBean{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", status=" + status +
|
||||||
|
", time=" + time +
|
||||||
|
", autoSeyHiNumber=" + autoSeyHiNumber +
|
||||||
|
", autoRequestFollowNumber=" + autoRequestFollowNumber +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机器人消息
|
||||||
|
*/
|
||||||
|
public static class Message {
|
||||||
|
public static final int TYPE_SAY_HI=1;//自动打招呼
|
||||||
|
public static final int TYPE_FOLLOW=3;//自动求关注
|
||||||
|
@SerializedName("id")
|
||||||
|
private int id;
|
||||||
|
@SerializedName("uid")
|
||||||
|
private int uid;
|
||||||
|
@SerializedName("type")
|
||||||
|
private int type;
|
||||||
|
@SerializedName("content")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
public Message() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(int uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Message{" +
|
||||||
|
"id=" + id +
|
||||||
|
", uid=" + uid +
|
||||||
|
", type=" + type +
|
||||||
|
", content='" + content + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 联系方式
|
||||||
|
*/
|
||||||
|
public class LiveAnchorCallMeModel extends BaseModel {
|
||||||
|
@SerializedName("id")
|
||||||
|
private int id;
|
||||||
|
@SerializedName("isShow")
|
||||||
|
private int isShow;
|
||||||
|
@SerializedName("gift_id")
|
||||||
|
private int giftId;
|
||||||
|
@SerializedName("giftImage")
|
||||||
|
private String giftImage;
|
||||||
|
@SerializedName("content")
|
||||||
|
private String content;
|
||||||
|
@SerializedName("wechat")
|
||||||
|
private AppBean wechat;
|
||||||
|
@SerializedName("line")
|
||||||
|
private AppBean line;
|
||||||
|
@SerializedName("whatsApp")
|
||||||
|
private AppBean whatsApp;
|
||||||
|
@SerializedName("isGet")
|
||||||
|
private int isGet;
|
||||||
|
@SerializedName("link")
|
||||||
|
private String link;
|
||||||
|
|
||||||
|
public LiveAnchorCallMeModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsGet() {
|
||||||
|
return isGet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsGet(int isGet) {
|
||||||
|
this.isGet = isGet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLink() {
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLink(String link) {
|
||||||
|
this.link = link;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGiftImage() {
|
||||||
|
return giftImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGiftImage(String giftImage) {
|
||||||
|
this.giftImage = giftImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsShow() {
|
||||||
|
return isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsShow(int isShow) {
|
||||||
|
this.isShow = isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGiftId() {
|
||||||
|
return giftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGiftId(int giftId) {
|
||||||
|
this.giftId = giftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppBean getWechat() {
|
||||||
|
if (wechat == null) {
|
||||||
|
wechat = new AppBean();
|
||||||
|
}
|
||||||
|
return wechat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWechat(AppBean wechat) {
|
||||||
|
this.wechat = wechat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppBean getLine() {
|
||||||
|
if (line == null) {
|
||||||
|
line = new AppBean();
|
||||||
|
}
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLine(AppBean line) {
|
||||||
|
this.line = line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppBean getWhatsApp() {
|
||||||
|
if (whatsApp == null) {
|
||||||
|
whatsApp = new AppBean();
|
||||||
|
}
|
||||||
|
return whatsApp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWhatsApp(AppBean whatsApp) {
|
||||||
|
this.whatsApp = whatsApp;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveAnchorCallMeModel{" +
|
||||||
|
"id=" + id +
|
||||||
|
", isShow=" + isShow +
|
||||||
|
", giftId=" + giftId +
|
||||||
|
", giftImage='" + giftImage + '\'' +
|
||||||
|
", content='" + content + '\'' +
|
||||||
|
", wechat=" + wechat +
|
||||||
|
", line=" + line +
|
||||||
|
", whatsApp=" + whatsApp +
|
||||||
|
", isGet=" + isGet +
|
||||||
|
", link='" + link + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AppBean {
|
||||||
|
private String number;
|
||||||
|
private int isShow;
|
||||||
|
|
||||||
|
public AppBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppBean(String number, int isShow) {
|
||||||
|
this.number = number;
|
||||||
|
this.isShow = isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumber() {
|
||||||
|
return number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumber(String number) {
|
||||||
|
this.number = number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsShow() {
|
||||||
|
return isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsShow(int isShow) {
|
||||||
|
this.isShow = isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "AppBean{" +
|
||||||
|
"number='" + number + '\'' +
|
||||||
|
", isShow=" + isShow +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public JSONObject toJSONObject() {
|
||||||
|
return (JSONObject) JSON.toJSON(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class LiveAnchorSayModel extends BaseModel{
|
||||||
|
@SerializedName("livePreview")
|
||||||
|
private LivePreview livePreview;
|
||||||
|
@SerializedName("style")
|
||||||
|
private List<String> style;
|
||||||
|
|
||||||
|
public LiveAnchorSayModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public LivePreview getLivePreview() {
|
||||||
|
return livePreview;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLivePreview(LivePreview livePreview) {
|
||||||
|
this.livePreview = livePreview;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getStyle() {
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStyle(List<String> style) {
|
||||||
|
this.style = style;
|
||||||
|
}
|
||||||
|
public class LivePreview{
|
||||||
|
private int isShow;
|
||||||
|
private String content;
|
||||||
|
private String styleImage;
|
||||||
|
|
||||||
|
public LivePreview() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsShow() {
|
||||||
|
return isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsShow(int isShow) {
|
||||||
|
this.isShow = isShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStyleImage() {
|
||||||
|
return styleImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStyleImage(String styleImage) {
|
||||||
|
this.styleImage = styleImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LivePreview{" +
|
||||||
|
"isShow=" + isShow +
|
||||||
|
", content='" + content + '\'' +
|
||||||
|
", styleImage='" + styleImage + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveAnchorSayModel{" +
|
||||||
|
"livePreview=" + livePreview +
|
||||||
|
", style=" + style +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -493,6 +493,44 @@ public class LiveBean implements Parcelable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "uid: " + uid + " , userNiceName: " + userNiceName + " ,playUrl: " + pull;
|
return "LiveBean{" +
|
||||||
|
"uid='" + uid + '\'' +
|
||||||
|
", avatar='" + avatar + '\'' +
|
||||||
|
", avatarThumb='" + avatarThumb + '\'' +
|
||||||
|
", userNiceName='" + userNiceName + '\'' +
|
||||||
|
", title='" + title + '\'' +
|
||||||
|
", city='" + city + '\'' +
|
||||||
|
", stream='" + stream + '\'' +
|
||||||
|
", pull='" + pull + '\'' +
|
||||||
|
", thumb='" + thumb + '\'' +
|
||||||
|
", nums='" + nums + '\'' +
|
||||||
|
", sex=" + sex +
|
||||||
|
", distance='" + distance + '\'' +
|
||||||
|
", levelAnchor=" + levelAnchor +
|
||||||
|
", type=" + type +
|
||||||
|
", typeVal='" + typeVal + '\'' +
|
||||||
|
", goodNum='" + goodNum + '\'' +
|
||||||
|
", gameAction=" + gameAction +
|
||||||
|
", game='" + game + '\'' +
|
||||||
|
", islive='" + islive + '\'' +
|
||||||
|
", isTop='" + isTop + '\'' +
|
||||||
|
", pk_avatar_thumb='" + pk_avatar_thumb + '\'' +
|
||||||
|
", landscape=" + landscape +
|
||||||
|
", hot_num='" + hot_num + '\'' +
|
||||||
|
", content_pic_size_one='" + content_pic_size_one + '\'' +
|
||||||
|
", content_pic_size_two='" + content_pic_size_two + '\'' +
|
||||||
|
", content_pic_size_three='" + content_pic_size_three + '\'' +
|
||||||
|
", is_week='" + is_week + '\'' +
|
||||||
|
", img='" + img + '\'' +
|
||||||
|
", url='" + url + '\'' +
|
||||||
|
", drpk_status='" + drpk_status + '\'' +
|
||||||
|
", is_rong=" + is_rong +
|
||||||
|
", isattention='" + isattention + '\'' +
|
||||||
|
", recommendCardtype='" + recommendCardtype + '\'' +
|
||||||
|
", recommendCardIconSizeTwo='" + recommendCardIconSizeTwo + '\'' +
|
||||||
|
", recommendCardIconSizeThree='" + recommendCardIconSizeThree + '\'' +
|
||||||
|
", params=" + params +
|
||||||
|
", mWeekList=" + mWeekList +
|
||||||
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,26 @@ public class LiveClassBean {
|
|||||||
private boolean isAll;
|
private boolean isAll;
|
||||||
private String des;
|
private String des;
|
||||||
private boolean checked;
|
private boolean checked;
|
||||||
|
private String chinese;
|
||||||
|
private String english;
|
||||||
|
|
||||||
|
public String getChinese() {
|
||||||
|
return chinese;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveClassBean setChinese(String chinese) {
|
||||||
|
this.chinese = chinese;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEnglish() {
|
||||||
|
return english;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveClassBean setEnglish(String english) {
|
||||||
|
this.english = english;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
|
|||||||
@@ -0,0 +1,106 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直播数据
|
||||||
|
*/
|
||||||
|
public class LiveDataInfoModel extends BaseModel{
|
||||||
|
@SerializedName("totalCoin")
|
||||||
|
private long totalCoin;//钻石数量
|
||||||
|
@SerializedName("totalGold")
|
||||||
|
private long totalGold;//金币数量
|
||||||
|
@SerializedName("acceptNum")
|
||||||
|
private long acceptNum;//送礼人数
|
||||||
|
@SerializedName("enterNum")
|
||||||
|
private long enterNum;//进场人数
|
||||||
|
@SerializedName("attentionNum")
|
||||||
|
private long attentionNum;//关注人数
|
||||||
|
@SerializedName("fanGroupNum")
|
||||||
|
private long fanGroupNum;//粉丝团人数
|
||||||
|
@SerializedName("attentionNumRate")
|
||||||
|
private double attentionNumRate;//关注转化率
|
||||||
|
@SerializedName("fanGroupNumRate")
|
||||||
|
private double fanGroupNumRate;//粉丝团转化率
|
||||||
|
|
||||||
|
public LiveDataInfoModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalCoin() {
|
||||||
|
return totalCoin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalCoin(long totalCoin) {
|
||||||
|
this.totalCoin = totalCoin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalGold() {
|
||||||
|
return totalGold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalGold(long totalGold) {
|
||||||
|
this.totalGold = totalGold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getAcceptNum() {
|
||||||
|
return acceptNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAcceptNum(long acceptNum) {
|
||||||
|
this.acceptNum = acceptNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getEnterNum() {
|
||||||
|
return enterNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnterNum(long enterNum) {
|
||||||
|
this.enterNum = enterNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getAttentionNum() {
|
||||||
|
return attentionNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttentionNum(long attentionNum) {
|
||||||
|
this.attentionNum = attentionNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getFanGroupNum() {
|
||||||
|
return fanGroupNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFanGroupNum(long fanGroupNum) {
|
||||||
|
this.fanGroupNum = fanGroupNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getAttentionNumRate() {
|
||||||
|
return attentionNumRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttentionNumRate(double attentionNumRate) {
|
||||||
|
this.attentionNumRate = attentionNumRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getFanGroupNumRate() {
|
||||||
|
return fanGroupNumRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFanGroupNumRate(double fanGroupNumRate) {
|
||||||
|
this.fanGroupNumRate = fanGroupNumRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveDataInfoModel{" +
|
||||||
|
"totalCoin=" + totalCoin +
|
||||||
|
", totalGold=" + totalGold +
|
||||||
|
", acceptNum=" + acceptNum +
|
||||||
|
", enterNum=" + enterNum +
|
||||||
|
", attentionNum=" + attentionNum +
|
||||||
|
", fanGroupNum=" + fanGroupNum +
|
||||||
|
", attentionNumRate=" + attentionNumRate +
|
||||||
|
", fanGroupNumRate=" + fanGroupNumRate +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,7 +18,7 @@ public class LiveGiftBean {
|
|||||||
// public static final int MARK_LUCK = 3;
|
// public static final int MARK_LUCK = 3;
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
private int type;//0 普通礼物 1是豪华礼物
|
private int type;//0 普通礼物 1是贵族 2守护 3粉丝团 5盲盒礼物
|
||||||
private int mark;// 0 普通 1热门 2守护 3幸运
|
private int mark;// 0 普通 1热门 2守护 3幸运
|
||||||
private String name;
|
private String name;
|
||||||
private String price;
|
private String price;
|
||||||
@@ -34,6 +34,17 @@ public class LiveGiftBean {
|
|||||||
private String isweek;
|
private String isweek;
|
||||||
private String end_time;
|
private String end_time;
|
||||||
private String tag;
|
private String tag;
|
||||||
|
@JSONField(name = "blind_box_type")
|
||||||
|
private int blind_box_type = 0;
|
||||||
|
|
||||||
|
public int getBlind_box_type() {
|
||||||
|
return blind_box_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveGiftBean setBlind_box_type(int blind_box_type) {
|
||||||
|
this.blind_box_type = blind_box_type;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTag() {
|
public String getTag() {
|
||||||
return tag;
|
return tag;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.yunbao.live.bean;
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.live.R;
|
import com.yunbao.common.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -0,0 +1,178 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主播创建投票
|
||||||
|
* {
|
||||||
|
* "live_vote_id": "20",
|
||||||
|
* "question_content": "123",
|
||||||
|
* "vote_end_time": 180,
|
||||||
|
* "option_content_first_num": 0,
|
||||||
|
* "option_content_second_num": 0,
|
||||||
|
* "users_id": []
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
public class LiveRoomVoteModel extends BaseModel {
|
||||||
|
@SerializedName("vote_status")
|
||||||
|
private int status;
|
||||||
|
@SerializedName("live_vote_id")
|
||||||
|
private String voteId;
|
||||||
|
@SerializedName("question_content")
|
||||||
|
private String content;
|
||||||
|
@SerializedName("vote_end_time")
|
||||||
|
private int time;
|
||||||
|
@SerializedName("option_content_first_num")
|
||||||
|
private int answer1Num;
|
||||||
|
@SerializedName("option_content_second_num")
|
||||||
|
private int answer2Num;
|
||||||
|
@SerializedName("users_id")
|
||||||
|
private List<String> userIds;
|
||||||
|
@SerializedName("option_content_first")
|
||||||
|
private String answer1;
|
||||||
|
@SerializedName("option_content_second")
|
||||||
|
private String answer2;
|
||||||
|
@SerializedName("result")
|
||||||
|
private String result;
|
||||||
|
@SerializedName("option_text")
|
||||||
|
private String optionText;
|
||||||
|
@SerializedName("option_content_key")
|
||||||
|
private String vote;
|
||||||
|
|
||||||
|
private String liveUid;
|
||||||
|
|
||||||
|
public String getLiveUid() {
|
||||||
|
return liveUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLiveUid(String liveUid) {
|
||||||
|
this.liveUid = liveUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnswer1() {
|
||||||
|
return answer1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnswer1(String answer1) {
|
||||||
|
this.answer1 = answer1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnswer2() {
|
||||||
|
return answer2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnswer2(String answer2) {
|
||||||
|
this.answer2 = answer2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVoteId() {
|
||||||
|
return voteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoteId(String voteId) {
|
||||||
|
this.voteId = voteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTime() {
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTime(int time) {
|
||||||
|
this.time = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAnswer1Num() {
|
||||||
|
return answer1Num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnswer1Num(int answer1Num) {
|
||||||
|
this.answer1Num = answer1Num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAnswer2Num() {
|
||||||
|
return answer2Num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnswer2Num(int answer2Num) {
|
||||||
|
this.answer2Num = answer2Num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getUserIds() {
|
||||||
|
return userIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserIds(List<String> userIds) {
|
||||||
|
this.userIds = userIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(int status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResult(String result) {
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOptionText() {
|
||||||
|
return optionText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOptionText(String optionText) {
|
||||||
|
this.optionText = optionText;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveRoomVoteModel{" +
|
||||||
|
"status=" + status +
|
||||||
|
", voteId='" + voteId + '\'' +
|
||||||
|
", content='" + content + '\'' +
|
||||||
|
", time=" + time +
|
||||||
|
", answer1Num=" + answer1Num +
|
||||||
|
", answer2Num=" + answer2Num +
|
||||||
|
", userIds=" + userIds +
|
||||||
|
", answer1='" + answer1 + '\'' +
|
||||||
|
", answer2='" + answer2 + '\'' +
|
||||||
|
", result='" + result + '\'' +
|
||||||
|
", optionText='" + optionText + '\'' +
|
||||||
|
", vote='" + vote + '\'' +
|
||||||
|
", liveUid='" + liveUid + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVote() {
|
||||||
|
return vote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVote(String vote) {
|
||||||
|
this.vote = vote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isVoteLeft() {
|
||||||
|
return vote.equals("option_content_first_num");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isVote() {
|
||||||
|
return !StringUtil.isEmpty(vote);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
public class LiveStetUpStatusModel extends BaseModel {
|
||||||
|
|
||||||
|
@SerializedName("wishList")
|
||||||
|
private String wishList;
|
||||||
|
@SerializedName("ai_state")
|
||||||
|
private String aiState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wishList 1设置 0 未设置
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean getWishListState() {
|
||||||
|
return TextUtils.equals(wishList, "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* aiState 1打开机器人 0 未设置
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean getAiStateState() {
|
||||||
|
return TextUtils.equals(aiState, "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWishList() {
|
||||||
|
return wishList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveStetUpStatusModel setWishList(String wishList) {
|
||||||
|
this.wishList = wishList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAiState() {
|
||||||
|
return aiState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveStetUpStatusModel setAiState(String aiState) {
|
||||||
|
this.aiState = aiState;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
259
common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直播任务
|
||||||
|
*/
|
||||||
|
public class LiveTaskModel extends BaseModel {
|
||||||
|
public static final int TASK_TYPE_TIP = 0;
|
||||||
|
public static final int TASK_TYPE_ITEM = 1;
|
||||||
|
|
||||||
|
int type;
|
||||||
|
@SerializedName("new")
|
||||||
|
NewUser user;
|
||||||
|
@SerializedName("list")
|
||||||
|
List<List<Task>> list;
|
||||||
|
|
||||||
|
public LiveTaskModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NewUser getUser() {
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUser(NewUser user) {
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<List<Task>> getList() {
|
||||||
|
if (user != null && user.isNew()) {
|
||||||
|
for (List<Task> tasks : list) {
|
||||||
|
for (Task task : tasks) {
|
||||||
|
task.isNewUser = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(List<List<Task>> list) {
|
||||||
|
this.list = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveTaskModel{" +
|
||||||
|
"type=" + type +
|
||||||
|
", user=" + user +
|
||||||
|
", list=" + list +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class NewUser {
|
||||||
|
@SerializedName("isNew")
|
||||||
|
private int isNew;
|
||||||
|
@SerializedName("endTime")
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
|
public NewUser() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNew() {
|
||||||
|
return isNew == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNew(int aNew) {
|
||||||
|
isNew = aNew;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEndTime() {
|
||||||
|
if (!StringUtil.isEmpty(endTime)) {
|
||||||
|
endTime =WordUtil.getString(R.string.live_task_new_user_timer) + new SimpleDateFormat("yyyy/MM/dd HH:mm", Locale.getDefault()).format(new Date(Long.parseLong(endTime) * 1000));
|
||||||
|
}
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(String endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "NewUser{" +
|
||||||
|
"isNew=" + isNew +
|
||||||
|
", endTime='" + endTime + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Task implements Serializable {
|
||||||
|
@SerializedName("id")
|
||||||
|
private int id;
|
||||||
|
@SerializedName("type")
|
||||||
|
private int type;
|
||||||
|
@SerializedName("task_type")
|
||||||
|
private int taskType;
|
||||||
|
@SerializedName("task_name")
|
||||||
|
private String taskName;
|
||||||
|
@SerializedName("task_num")
|
||||||
|
private int taskNum;
|
||||||
|
@SerializedName("hot")
|
||||||
|
private long hot;
|
||||||
|
@SerializedName("exp")
|
||||||
|
private long exp;
|
||||||
|
@SerializedName("new_hot")
|
||||||
|
private long newUserHot;
|
||||||
|
@SerializedName("new_exp")
|
||||||
|
private long newUserExp;
|
||||||
|
@SerializedName("sort")
|
||||||
|
private int sort;
|
||||||
|
@SerializedName("status")
|
||||||
|
private int status;
|
||||||
|
|
||||||
|
@SerializedName("now_num")
|
||||||
|
private int nowValue;
|
||||||
|
|
||||||
|
private boolean isNewUser = false;
|
||||||
|
|
||||||
|
public Task() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTaskType() {
|
||||||
|
return taskType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskType(int taskType) {
|
||||||
|
this.taskType = taskType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTaskName() {
|
||||||
|
return taskName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskName(String taskName) {
|
||||||
|
this.taskName = taskName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTaskNum() {
|
||||||
|
return taskNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskNum(int taskNum) {
|
||||||
|
this.taskNum = taskNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getHot() {
|
||||||
|
if (isNewUser) {
|
||||||
|
hot = newUserHot;
|
||||||
|
}
|
||||||
|
return hot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHot(long hot) {
|
||||||
|
this.hot = hot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getExp() {
|
||||||
|
if (isNewUser) {
|
||||||
|
exp = newUserExp;
|
||||||
|
}
|
||||||
|
return exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExp(long exp) {
|
||||||
|
this.exp = exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getNewUserHot() {
|
||||||
|
return newUserHot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewUserHot(long newUserHot) {
|
||||||
|
this.newUserHot = newUserHot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getNewUserExp() {
|
||||||
|
return newUserExp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewUserExp(long newUserExp) {
|
||||||
|
this.newUserExp = newUserExp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSort() {
|
||||||
|
return sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSort(int sort) {
|
||||||
|
this.sort = sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getStatus() {
|
||||||
|
return status == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(int status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNowValue() {
|
||||||
|
return nowValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNowValue(int nowValue) {
|
||||||
|
this.nowValue = nowValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Task{" +
|
||||||
|
"id=" + id +
|
||||||
|
", type=" + type +
|
||||||
|
", taskType=" + taskType +
|
||||||
|
", taskName='" + taskName + '\'' +
|
||||||
|
", taskNum=" + taskNum +
|
||||||
|
", hot=" + hot +
|
||||||
|
", exp=" + exp +
|
||||||
|
", newUserHot=" + newUserHot +
|
||||||
|
", newUserExp=" + newUserExp +
|
||||||
|
", sort=" + sort +
|
||||||
|
", status=" + status +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.CommonAppConfig;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
|
public class LiveUserMailBoxModel extends BaseModel {
|
||||||
|
@SerializedName("id")
|
||||||
|
private int id;
|
||||||
|
@SerializedName("uid")
|
||||||
|
private int uid;
|
||||||
|
@SerializedName("liveuid")
|
||||||
|
private int liveUid;
|
||||||
|
@SerializedName("is_read")
|
||||||
|
private int isRead;
|
||||||
|
@SerializedName("content")
|
||||||
|
private String content;
|
||||||
|
@SerializedName("create_time")
|
||||||
|
private String createTime;
|
||||||
|
@SerializedName("gift_id")
|
||||||
|
private int giftId;
|
||||||
|
@SerializedName("userName")
|
||||||
|
private String userName;
|
||||||
|
@SerializedName("anchorName")
|
||||||
|
private String anchorName;
|
||||||
|
@SerializedName("url")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
public LiveUserMailBoxModel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveUserMailBoxModel(int id, int uid, int liveUid, String content, String createTime, int giftId, String userName, String anchorName) {
|
||||||
|
this.id = id;
|
||||||
|
this.uid = uid;
|
||||||
|
this.liveUid = liveUid;
|
||||||
|
this.content = content;
|
||||||
|
this.createTime = createTime;
|
||||||
|
this.giftId = giftId;
|
||||||
|
this.userName = userName;
|
||||||
|
this.anchorName = anchorName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(int uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLiveUid() {
|
||||||
|
return liveUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLiveUid(int liveUid) {
|
||||||
|
this.liveUid = liveUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreateTime() {
|
||||||
|
return createTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateTime(String createTime) {
|
||||||
|
this.createTime = createTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGiftId() {
|
||||||
|
return giftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGiftId(int giftId) {
|
||||||
|
this.giftId = giftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnchorName() {
|
||||||
|
return anchorName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnchorName(String anchorName) {
|
||||||
|
this.anchorName = anchorName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsRead() {
|
||||||
|
return isRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsRead(int isRead) {
|
||||||
|
this.isRead = isRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
if (StringUtil.isEmpty(url)) {
|
||||||
|
url = "http://www.baidu.com";
|
||||||
|
} else {
|
||||||
|
if (!url.startsWith("http")) {
|
||||||
|
url = CommonAppConfig.HOST + "/" + url;
|
||||||
|
}
|
||||||
|
if (url.contains("?")) {
|
||||||
|
url += "&";
|
||||||
|
} else {
|
||||||
|
url += "?";
|
||||||
|
}
|
||||||
|
url += "uid=" + CommonAppConfig.getInstance().getUid() + "&token="
|
||||||
|
+ CommonAppConfig.getInstance().getToken();
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "LiveUserMailBoxModel{" +
|
||||||
|
"id=" + id +
|
||||||
|
", uid=" + uid +
|
||||||
|
", liveUid=" + liveUid +
|
||||||
|
", isRead=" + isRead +
|
||||||
|
", content='" + content + '\'' +
|
||||||
|
", createTime='" + createTime + '\'' +
|
||||||
|
", giftId=" + giftId +
|
||||||
|
", userName='" + userName + '\'' +
|
||||||
|
", anchorName='" + anchorName + '\'' +
|
||||||
|
", url='" + url + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.yunbao.common.bean;
|
|||||||
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,6 +18,17 @@ public class NewLevelModel extends BaseModel {
|
|||||||
private String levemax;
|
private String levemax;
|
||||||
@SerializedName("thumb")
|
@SerializedName("thumb")
|
||||||
private String thumb;
|
private String thumb;
|
||||||
|
@SerializedName("icon")
|
||||||
|
private String icon;
|
||||||
|
@SerializedName("colour")
|
||||||
|
private String colour;
|
||||||
|
@SerializedName("live_icon")
|
||||||
|
private String liveIcon = "https://downs.yaoulive.com/level1/img_1-9.png";
|
||||||
|
|
||||||
|
public static NewLevelModel objectFromData(String str) {
|
||||||
|
|
||||||
|
return new Gson().fromJson(str, NewLevelModel.class);
|
||||||
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
@@ -67,4 +79,28 @@ public class NewLevelModel extends BaseModel {
|
|||||||
this.thumb = thumb;
|
this.thumb = thumb;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getIcon() {
|
||||||
|
return icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIcon(String icon) {
|
||||||
|
this.icon = icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getColour() {
|
||||||
|
return colour;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColour(String colour) {
|
||||||
|
this.colour = colour;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLiveIcon() {
|
||||||
|
return liveIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLiveIcon(String liveIcon) {
|
||||||
|
this.liveIcon = liveIcon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
public class PrankGiftBean extends BaseModel{
|
||||||
|
@SerializedName("prank_content")
|
||||||
|
private String title;
|
||||||
|
@SerializedName("gift_name")
|
||||||
|
private String name;
|
||||||
|
@SerializedName("gift_icon")
|
||||||
|
private String icon;
|
||||||
|
@SerializedName("gift_num")
|
||||||
|
private int num;
|
||||||
|
@SerializedName("gift_id")
|
||||||
|
private String giftId;
|
||||||
|
|
||||||
|
public PrankGiftBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNum() {
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNum(int num) {
|
||||||
|
this.num = num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIcon() {
|
||||||
|
return icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIcon(String icon) {
|
||||||
|
this.icon = icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGiftId() {
|
||||||
|
return giftId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGiftId(String giftId) {
|
||||||
|
this.giftId = giftId;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.bean.BaseModel;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
|
public class PrankHttpTurntableBean extends BaseModel {
|
||||||
|
@SerializedName("id")
|
||||||
|
private int id;
|
||||||
|
@SerializedName("anchor_id")
|
||||||
|
private String anchor_id;
|
||||||
|
@SerializedName("coin")
|
||||||
|
private long coin = 1000;
|
||||||
|
@SerializedName("hope_coin")
|
||||||
|
private long hopeCoin = 1000;
|
||||||
|
@SerializedName("turntable_one")
|
||||||
|
private String turntable1;
|
||||||
|
@SerializedName("turntable_two")
|
||||||
|
private String turntable2;
|
||||||
|
@SerializedName("turntable_three")
|
||||||
|
private String turntable3;
|
||||||
|
@SerializedName("turntable_four")
|
||||||
|
private String turntable4;
|
||||||
|
@SerializedName("turntable_five")
|
||||||
|
private String turntable5;
|
||||||
|
@SerializedName("turntable_six")
|
||||||
|
private String turntable6;
|
||||||
|
@SerializedName("status")
|
||||||
|
private int status;
|
||||||
|
|
||||||
|
public PrankHttpTurntableBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnchor_id() {
|
||||||
|
return anchor_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnchor_id(String anchor_id) {
|
||||||
|
this.anchor_id = anchor_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getCoin() {
|
||||||
|
return coin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCoin(long coin) {
|
||||||
|
this.coin = coin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getHopeCoin() {
|
||||||
|
return hopeCoin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHopeCoin(long hopeCoin) {
|
||||||
|
this.hopeCoin = hopeCoin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurntable1() {
|
||||||
|
return turntable1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurntable1(String turntable1) {
|
||||||
|
this.turntable1 = turntable1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurntable2() {
|
||||||
|
return turntable2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurntable2(String turntable2) {
|
||||||
|
this.turntable2 = turntable2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurntable3() {
|
||||||
|
return turntable3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurntable3(String turntable3) {
|
||||||
|
this.turntable3 = turntable3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurntable4() {
|
||||||
|
return turntable4;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurntable4(String turntable4) {
|
||||||
|
this.turntable4 = turntable4;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurntable5() {
|
||||||
|
return turntable5;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurntable5(String turntable5) {
|
||||||
|
this.turntable5 = turntable5;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurntable6() {
|
||||||
|
return turntable6;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurntable6(String turntable6) {
|
||||||
|
this.turntable6 = turntable6;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(int status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
|
||||||
|
public class PrankTurntableBean extends BaseModel {
|
||||||
|
private int id;
|
||||||
|
private String context;
|
||||||
|
|
||||||
|
public PrankTurntableBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContext() {
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContext(String context) {
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 随机PK UserBean
|
||||||
|
*/
|
||||||
|
public class RandomPkUserBean extends UserBean {
|
||||||
|
@SerializedName("is_pk")
|
||||||
|
private int pk;
|
||||||
|
@SerializedName("isattention")
|
||||||
|
private String attention;
|
||||||
|
@SerializedName("user_nicename")
|
||||||
|
private String userNiceName;
|
||||||
|
|
||||||
|
public RandomPkUserBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPk() {
|
||||||
|
return pk==1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAttention() {
|
||||||
|
return attention.equals("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttention() {
|
||||||
|
return attention;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttention(String attention) {
|
||||||
|
this.attention = attention;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPk() {
|
||||||
|
return pk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPk(int pk) {
|
||||||
|
this.pk = pk;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUserNiceName() {
|
||||||
|
return userNiceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUserNiceName(String userNiceName) {
|
||||||
|
this.userNiceName = userNiceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "RandomPkUserBean{" +
|
||||||
|
"pk=" + pk +
|
||||||
|
", attention='" + attention + '\'' +
|
||||||
|
", userNiceName='" + userNiceName + '\'' +
|
||||||
|
", id='" + id + '\'' +
|
||||||
|
", userNiceName='" + userNiceName + '\'' +
|
||||||
|
", avatar='" + avatar + '\'' +
|
||||||
|
", avatarThumb='" + avatarThumb + '\'' +
|
||||||
|
", sex=" + sex +
|
||||||
|
", signature='" + signature + '\'' +
|
||||||
|
", coin='" + coin + '\'' +
|
||||||
|
", gold='" + gold + '\'' +
|
||||||
|
", votes='" + votes + '\'' +
|
||||||
|
", consumption='" + consumption + '\'' +
|
||||||
|
", votestotal='" + votestotal + '\'' +
|
||||||
|
", province='" + province + '\'' +
|
||||||
|
", city='" + city + '\'' +
|
||||||
|
", location='" + location + '\'' +
|
||||||
|
", birthday='" + birthday + '\'' +
|
||||||
|
", level=" + level +
|
||||||
|
", levelAnchor=" + levelAnchor +
|
||||||
|
", lives=" + lives +
|
||||||
|
", follows=" + follows +
|
||||||
|
", fans=" + fans +
|
||||||
|
", vip=" + vip +
|
||||||
|
", liang=" + liang +
|
||||||
|
", car=" + car +
|
||||||
|
", medal_level=" + medal_level +
|
||||||
|
", medal_name='" + medal_name + '\'' +
|
||||||
|
", Dress=" + Dress +
|
||||||
|
", noble_id='" + noble_id + '\'' +
|
||||||
|
", yuanbao='" + yuanbao + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
128
common/src/main/java/com/yunbao/common/bean/RankPkInfoBean.java
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
public class RankPkInfoBean extends BaseModel {
|
||||||
|
private int id;
|
||||||
|
@SerializedName("start_time")
|
||||||
|
private String startTime;
|
||||||
|
@SerializedName("end_time")
|
||||||
|
private String endTime;
|
||||||
|
@SerializedName("pk_start_hour1")
|
||||||
|
private String pkStartHour1;
|
||||||
|
@SerializedName("pk_end_hour1")
|
||||||
|
private String pkEndHour1;
|
||||||
|
@SerializedName("pk_start_hour2")
|
||||||
|
private String pkStartHour2;
|
||||||
|
@SerializedName("pk_end_hour2")
|
||||||
|
private String pkEndHour2;
|
||||||
|
|
||||||
|
public RankPkInfoBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStartTime() {
|
||||||
|
return startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartTime(String startTime) {
|
||||||
|
this.startTime = startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(String endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPkStartHour1() {
|
||||||
|
return pkStartHour1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPkStartHour1(String pkStartHour1) {
|
||||||
|
this.pkStartHour1 = pkStartHour1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPkEndHour1() {
|
||||||
|
return pkEndHour1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPkEndHour1(String pkEndHour1) {
|
||||||
|
this.pkEndHour1 = pkEndHour1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPkStartHour2() {
|
||||||
|
return pkStartHour2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPkStartHour2(String pkStartHour2) {
|
||||||
|
this.pkStartHour2 = pkStartHour2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPkEndHour2() {
|
||||||
|
return pkEndHour2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPkEndHour2(String pkEndHour2) {
|
||||||
|
this.pkEndHour2 = pkEndHour2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否在排位赛时间范围内
|
||||||
|
*/
|
||||||
|
public boolean isRankPKTime() {
|
||||||
|
try {
|
||||||
|
Date now =new Date();
|
||||||
|
Date startDate = simpleDateToDate(startTime, "yyyy-MM-dd HH:mm:ss");
|
||||||
|
Date endDate = simpleDateToDate(endTime, "yyyy-MM-dd HH:mm:ss");
|
||||||
|
if (startDate == null || endDate == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Calendar calendarStart = Calendar.getInstance(Locale.CHINA);
|
||||||
|
Calendar calendarEnd = Calendar.getInstance(Locale.CHINA);
|
||||||
|
Calendar calendarNow = Calendar.getInstance(Locale.CHINA);
|
||||||
|
calendarNow.setTime(now);
|
||||||
|
calendarStart.setTime(startDate);
|
||||||
|
calendarEnd.setTime(endDate);
|
||||||
|
if (calendarStart.before(calendarNow) && calendarEnd.after(calendarNow)) {
|
||||||
|
calendarNow.setTime(simpleDateToDate(dateToSimpleDate(now,"HH:mm:ss"),"HH:mm:ss"));
|
||||||
|
calendarStart.setTime(simpleDateToDate(pkStartHour1, "HH:mm:ss"));
|
||||||
|
calendarEnd.setTime(simpleDateToDate(pkEndHour1, "HH:mm:ss"));
|
||||||
|
if (calendarStart.before(calendarNow) && calendarEnd.after(calendarNow)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
calendarNow.setTime(simpleDateToDate(dateToSimpleDate(now,"HH:mm:ss"),"HH:mm:ss"));
|
||||||
|
calendarStart.setTime(simpleDateToDate(pkStartHour2, "HH:mm:ss"));
|
||||||
|
calendarEnd.setTime(simpleDateToDate(pkEndHour2, "HH:mm:ss"));
|
||||||
|
return calendarStart.before(calendarNow) && calendarEnd.after(calendarNow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Date simpleDateToDate(String time, String pattern) throws ParseException {
|
||||||
|
return new SimpleDateFormat(pattern, Locale.CHINA).parse(time);
|
||||||
|
}
|
||||||
|
private String dateToSimpleDate(Date date,String pattern){
|
||||||
|
return new SimpleDateFormat(pattern,Locale.CHINA).format(date);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
public class UserAreaBean extends BaseModel {
|
||||||
|
private String area;
|
||||||
|
|
||||||
|
public UserAreaBean() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getArea() {
|
||||||
|
return area;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setArea(String area) {
|
||||||
|
this.area = area;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ import android.text.TextUtils;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.annotation.JSONField;
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cxf on 2017/8/14.
|
* Created by cxf on 2017/8/14.
|
||||||
@@ -49,7 +50,7 @@ public class UserBean implements Parcelable {
|
|||||||
private String fans_pic;
|
private String fans_pic;
|
||||||
private String gifticon;
|
private String gifticon;
|
||||||
private String department_name;
|
private String department_name;
|
||||||
private String token_rong="";
|
private String token_rong = "";
|
||||||
private String noble_end_time;
|
private String noble_end_time;
|
||||||
private String slide;
|
private String slide;
|
||||||
private String users_type;
|
private String users_type;
|
||||||
@@ -61,6 +62,37 @@ public class UserBean implements Parcelable {
|
|||||||
private int praise;
|
private int praise;
|
||||||
//是否隐藏
|
//是否隐藏
|
||||||
private boolean isHide = false;
|
private boolean isHide = false;
|
||||||
|
//是否为随机PK,仅在主播PK时使用
|
||||||
|
private boolean randomPk;
|
||||||
|
//随机天梯排位赛PK img,仅在主播PK时使用
|
||||||
|
private String mRankPkImgUrl;
|
||||||
|
//是否填写完整资料
|
||||||
|
private int user_info_complete;
|
||||||
|
|
||||||
|
public int getUserInfoComplete() {
|
||||||
|
return user_info_complete;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserBean seUserInfoComplete(int userInfoComplete) {
|
||||||
|
this.user_info_complete = userInfoComplete;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRandomPk() {
|
||||||
|
return randomPk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRandomPk(boolean randomPk) {
|
||||||
|
this.randomPk = randomPk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRankPkImgUrl() {
|
||||||
|
return mRankPkImgUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRankPkImgUrl(String mRankPkImgUrl) {
|
||||||
|
this.mRankPkImgUrl = mRankPkImgUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isHide() {
|
public boolean isHide() {
|
||||||
return isHide;
|
return isHide;
|
||||||
@@ -96,6 +128,9 @@ public class UserBean implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getIs_bind() {
|
public String getIs_bind() {
|
||||||
|
if (StringUtil.isEmpty(is_bind)) {
|
||||||
|
is_bind = "0";
|
||||||
|
}
|
||||||
return is_bind;
|
return is_bind;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,7 +500,7 @@ public class UserBean implements Parcelable {
|
|||||||
if (this.liang != null) {
|
if (this.liang != null) {
|
||||||
String liangName = this.liang.getName();
|
String liangName = this.liang.getName();
|
||||||
if (!TextUtils.isEmpty(liangName) && !"0".equals(liangName)) {
|
if (!TextUtils.isEmpty(liangName) && !"0".equals(liangName)) {
|
||||||
// return WordUtil.getString(R.string.live_liang) + ":" + liangName;
|
// returnmContext.getString(R.string.live_liang) + ":" + liangName;
|
||||||
return liangName;
|
return liangName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 心愿单礼物配置
|
||||||
|
*/
|
||||||
|
public class WishListGiftConfModel extends BaseModel {
|
||||||
|
|
||||||
|
@SerializedName("giftList")
|
||||||
|
private List<GiftListModel> giftList = new ArrayList<>();
|
||||||
|
@SerializedName("guardList")
|
||||||
|
private List<GiftListModel> guardList = new ArrayList<>();
|
||||||
|
@SerializedName("nobleList")
|
||||||
|
private List<GiftListModel> nobleList = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<GiftListModel> getGiftList() {
|
||||||
|
return giftList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WishListGiftConfModel setGiftList(List<GiftListModel> giftList) {
|
||||||
|
this.giftList = giftList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GiftListModel> getGuardList() {
|
||||||
|
return guardList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WishListGiftConfModel setGuardList(List<GiftListModel> guardList) {
|
||||||
|
this.guardList = guardList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GiftListModel> getNobleList() {
|
||||||
|
return nobleList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WishListGiftConfModel setNobleList(List<GiftListModel> nobleList) {
|
||||||
|
this.nobleList = nobleList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||