Guest User

Untitled

a guest
Jun 3rd, 2024
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.22 KB | None | 0 0
  1. package ru.mdev.irbisclicker;
  2.  
  3. import android.app.Activity;
  4. import android.app.Dialog;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.content.SharedPreferences;
  8. import android.graphics.Color;
  9. import android.graphics.Typeface;
  10. import android.graphics.drawable.ColorDrawable;
  11. import android.net.Uri;
  12. import android.os.Bundle;
  13. import android.util.Log;
  14. import android.view.View;
  15. import android.widget.Button;
  16. import android.widget.EditText;
  17. import android.widget.ImageView;
  18. import android.widget.TextView;
  19. import android.widget.Toast;
  20.  
  21. import androidx.annotation.NonNull;
  22. import androidx.appcompat.app.AppCompatActivity;
  23.  
  24. import com.google.firebase.auth.FirebaseAuth;
  25. import com.google.firebase.database.DataSnapshot;
  26. import com.google.firebase.database.DatabaseError;
  27. import com.google.firebase.database.DatabaseReference;
  28. import com.google.firebase.database.FirebaseDatabase;
  29. import com.google.firebase.database.Query;
  30. import com.google.firebase.database.ValueEventListener;
  31. import com.unity3d.ads.IUnityAdsInitializationListener;
  32. import com.unity3d.ads.IUnityAdsLoadListener;
  33. import com.unity3d.ads.IUnityAdsShowListener;
  34. import com.unity3d.ads.UnityAds;
  35. import com.unity3d.ads.UnityAdsShowOptions;
  36.  
  37. public class ProfilePage extends AppCompatActivity implements IUnityAdsInitializationListener {
  38. private ImageView main, up, settings;
  39. private TextView signout, info;
  40. private FirebaseAuth mAuth;
  41. private Dialog dialog;
  42. private Button email, pass, data, rate_app, vk, activate, promoCodes, nick, setnick, rate, ad;
  43. private EditText promo;
  44. private String unityGameID = "5630188";
  45. private Boolean testMode = false;
  46. private String adUnitId = "Rewarded_Android";
  47.  
  48.  
  49. private IUnityAdsLoadListener loadListener = new IUnityAdsLoadListener() {
  50. @Override
  51. public void onUnityAdsAdLoaded(String placementId) {
  52. UnityAds.show(ProfilePage.this, adUnitId, new UnityAdsShowOptions(), showListener);
  53. }
  54.  
  55. @Override
  56. public void onUnityAdsFailedToLoad(String placementId, UnityAds.UnityAdsLoadError error, String message) {
  57. Log.e("UnityAdsExample", "Unity Ads failed to load ad for " + placementId + " with error: [" + error + "] " + message);
  58. }
  59. };
  60.  
  61. private IUnityAdsShowListener showListener = new IUnityAdsShowListener() {
  62. @Override
  63. public void onUnityAdsShowFailure(String placementId, UnityAds.UnityAdsShowError error, String message) {
  64. Log.e("UnityAdsExample", "Unity Ads failed to show ad for " + placementId + " with error: [" + error + "] " + message);
  65. }
  66.  
  67. @Override
  68. public void onUnityAdsShowStart(String placementId) {
  69. Log.v("UnityAdsExample", "onUnityAdsShowStart: " + placementId);
  70. }
  71.  
  72. @Override
  73. public void onUnityAdsShowClick(String placementId) {
  74. Log.v("UnityAdsExample", "onUnityAdsShowClick: " + placementId);
  75. }
  76.  
  77. @Override
  78. public void onUnityAdsShowComplete(String placementId, UnityAds.UnityAdsShowCompletionState state) {
  79. Log.v("UnityAdsExample", "onUnityAdsShowComplete: " + placementId);
  80. if (state.equals(UnityAds.UnityAdsShowCompletionState.COMPLETED)) {
  81. mAuth = FirebaseAuth.getInstance();
  82. if (mAuth.getCurrentUser() != null) {
  83. String uid = mAuth.getCurrentUser().getUid();
  84. DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child("user").child(uid);
  85. userRef.child("balance").addListenerForSingleValueEvent(new ValueEventListener() {
  86. @Override
  87. public void onDataChange(@NonNull DataSnapshot snapshot) {
  88. int balance = snapshot.getValue(Integer.class);
  89. int newBalance = balance + 50;
  90. userRef.child("balance").setValue(newBalance);
  91. Toast.makeText(ProfilePage.this, "Вы получили 50 бонусов", Toast.LENGTH_SHORT).show();
  92. }
  93.  
  94. @Override
  95. public void onCancelled(@NonNull DatabaseError error) {
  96.  
  97. }
  98. });
  99. }
  100. } else {
  101.  
  102. }
  103. }
  104. };
  105.  
  106.  
  107. @Override
  108. protected void onCreate(Bundle savedInstanceState) {
  109. super.onCreate(savedInstanceState);
  110. setContentView(R.layout.activity_profile_page);
  111. UnityAds.initialize(getApplicationContext(), unityGameID, testMode, this);
  112. mAuth = FirebaseAuth.getInstance();
  113. main = findViewById(R.id.main);
  114. up = findViewById(R.id.upp);
  115. settings = findViewById(R.id.settings);
  116. signout = findViewById(R.id.signout);
  117. email = findViewById(R.id.email);
  118. pass = findViewById(R.id.pass);
  119. data = findViewById(R.id.data);
  120. info = findViewById(R.id.info);
  121. promoCodes = findViewById(R.id.promoCodes);
  122. rate_app = findViewById(R.id.rate_app);
  123. rate = findViewById(R.id.rate);
  124. vk = findViewById(R.id.vk);
  125. nick = findViewById(R.id.nick);
  126. setnick = findViewById(R.id.setnick);
  127. ad = findViewById(R.id.ad);
  128. dialog = new Dialog(ProfilePage.this);
  129.  
  130. info.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/jost.ttf"));
  131. signout.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/jost.ttf"));
  132.  
  133. if (mAuth.getCurrentUser() != null) {
  134. String uid = mAuth.getCurrentUser().getUid();
  135. DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child("user").child(uid);
  136. email.setOnClickListener(new View.OnClickListener() {
  137. @Override
  138. public void onClick(View v) {
  139. userRef.child("email").addListenerForSingleValueEvent(new ValueEventListener() {
  140. @Override
  141. public void onDataChange(DataSnapshot dataSnapshot) {
  142. String email_text = dataSnapshot.getValue(String.class);
  143. Toast.makeText(ProfilePage.this, email_text, Toast.LENGTH_SHORT).show();
  144. }
  145.  
  146. @Override
  147. public void onCancelled(DatabaseError databaseError) {
  148. // Обработка ошибок
  149. }
  150. });
  151. }
  152. });
  153. pass.setOnClickListener(new View.OnClickListener() {
  154. @Override
  155. public void onClick(View v) {
  156. userRef.child("password").addListenerForSingleValueEvent(new ValueEventListener() {
  157. @Override
  158. public void onDataChange(DataSnapshot dataSnapshot) {
  159. String pass_text = dataSnapshot.getValue(String.class);
  160. Toast.makeText(ProfilePage.this, pass_text, Toast.LENGTH_SHORT).show();
  161. }
  162.  
  163. @Override
  164. public void onCancelled(DatabaseError databaseError) {
  165. // Обработка ошибок
  166. }
  167. });
  168. }
  169. });
  170. data.setOnClickListener(new View.OnClickListener() {
  171. @Override
  172. public void onClick(View v) {
  173. userRef.child("data").addListenerForSingleValueEvent(new ValueEventListener() {
  174. @Override
  175. public void onDataChange(DataSnapshot dataSnapshot) {
  176. String data = dataSnapshot.getValue(String.class);
  177. Toast.makeText(ProfilePage.this, data, Toast.LENGTH_SHORT).show();
  178. }
  179.  
  180. @Override
  181. public void onCancelled(DatabaseError databaseError) {
  182. // Обработка ошибок
  183. }
  184. });
  185. }
  186. });
  187. nick.setOnClickListener(new View.OnClickListener() {
  188. @Override
  189. public void onClick(View v) {
  190. userRef.child("nick").addListenerForSingleValueEvent(new ValueEventListener() {
  191. @Override
  192. public void onDataChange(DataSnapshot dataSnapshot) {
  193. String nick = dataSnapshot.getValue(String.class);
  194. Toast.makeText(ProfilePage.this, nick, Toast.LENGTH_SHORT).show();
  195. }
  196.  
  197. @Override
  198. public void onCancelled(DatabaseError databaseError) {
  199. // Обработка ошибок
  200. }
  201. });
  202. }
  203. });
  204. setnick.setOnClickListener(new View.OnClickListener() {
  205. @Override
  206. public void onClick(View v) {
  207. dialog.setContentView(R.layout.setnick_dialog);
  208. dialog.show();
  209. dialog.setCanceledOnTouchOutside(true);
  210. dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
  211. EditText nick = dialog.findViewById(R.id.nick);
  212. Button set = dialog.findViewById(R.id.set);
  213. set.setOnClickListener(new View.OnClickListener() {
  214. @Override
  215. public void onClick(View v) {
  216. String nickt = nick.getText().toString();
  217. if (!nickt.isEmpty()) {
  218. if (nickt.length() > 3) {
  219. if (nickt.length() <= 10) {
  220. if (nickt.matches("[a-zA-Zа-яА-Я]+")) {
  221. checkNick(nickt);
  222. dialog.dismiss();
  223. } else {
  224. Toast.makeText(ProfilePage.this, "Никнейм может содержать только английские и русские буквы", Toast.LENGTH_LONG).show();
  225. }
  226. }else{
  227. Toast.makeText(ProfilePage.this, "Никнейм не может быть больше 10 символов", Toast.LENGTH_LONG).show();
  228. }
  229. }else{
  230. Toast.makeText(ProfilePage.this, "Никнейм не может быть меньше 3 символов", Toast.LENGTH_LONG).show();
  231. }
  232. }else{
  233. Toast.makeText(ProfilePage.this, "Поле никнейма не может быть пустым", Toast.LENGTH_LONG).show();
  234. }
  235. }
  236. });
  237. }
  238. });
  239. }
  240.  
  241. ad.setOnClickListener(new View.OnClickListener() {
  242. @Override
  243. public void onClick(View v) {
  244. UnityAds.load(adUnitId, loadListener);
  245. Toast.makeText(ProfilePage.this, "Загрузка рекламы", Toast.LENGTH_LONG).show();
  246. }
  247. });
  248.  
  249. main.setOnClickListener(new View.OnClickListener() {
  250. @Override
  251. public void onClick(View v) {
  252. Intent intent = new Intent(ProfilePage.this, MainPage.class);
  253. startActivity(intent);
  254. overridePendingTransition(0,0);
  255. }
  256. });
  257. rate.setOnClickListener(new View.OnClickListener() {
  258. @Override
  259. public void onClick(View v) {
  260. Intent intent = new Intent(ProfilePage.this, RatingActivity.class);
  261. startActivity(intent);
  262. overridePendingTransition(0,0);
  263. }
  264. });
  265. signout.setOnClickListener(new View.OnClickListener() {
  266. @Override
  267. public void onClick(View v) {
  268. mAuth.signOut();
  269. SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
  270. SharedPreferences.Editor editor = sharedPreferences.edit();
  271. editor.putBoolean("isLoggedIn", false);
  272. editor.apply();
  273. Intent intent = new Intent(ProfilePage.this, MainActivity.class);
  274. startActivity(intent);
  275. }
  276. });
  277. up.setOnClickListener(new View.OnClickListener() {
  278. @Override
  279. public void onClick(View v) {
  280. Intent intent = new Intent(ProfilePage.this, UpPage.class);
  281. startActivity(intent);
  282. overridePendingTransition(0,0);
  283. }
  284. });
  285. settings.setOnClickListener(new View.OnClickListener() {
  286. @Override
  287. public void onClick(View v) {
  288. showSettings();
  289. }
  290. });
  291. rate_app.setOnClickListener(new View.OnClickListener() {
  292. @Override
  293. public void onClick(View v) {
  294. String url = "https://vk.com/topic-218004004_48990214";
  295. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
  296. startActivity(intent);
  297. }
  298. });
  299. vk.setOnClickListener(new View.OnClickListener() {
  300. @Override
  301. public void onClick(View v) {
  302. String url = "https://vk.me/mercidev";
  303. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
  304. startActivity(intent);
  305. }
  306. });
  307. promoCodes.setOnClickListener(new View.OnClickListener() {
  308. @Override
  309. public void onClick(View v) {
  310. dialog.setContentView(R.layout.promo_dialog);
  311. dialog.show();
  312. dialog.setCanceledOnTouchOutside(true);
  313. dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
  314. activate = dialog.findViewById(R.id.activate);
  315. promo = dialog.findViewById(R.id.promo);
  316. activate.setOnClickListener(new View.OnClickListener() {
  317. @Override
  318. public void onClick(View v) {
  319. String code = promo.getText().toString();
  320. if (!code.isEmpty()) {
  321. showPromo(code);
  322. }else{
  323. Toast.makeText(ProfilePage.this, "Поле промокода не может быть пустым", Toast.LENGTH_LONG).show();
  324. }
  325. }
  326. });
  327. }
  328. });
  329. }
  330. public void showSettings() {
  331. Toast.makeText(ProfilePage.this, "В разработке", Toast.LENGTH_SHORT).show();
  332. }
  333. public void showPromo(String code) {
  334. DatabaseReference promos = FirebaseDatabase.getInstance().getReference().child("codes").child(code);
  335. String uid = mAuth.getCurrentUser().getUid();
  336. promos.addListenerForSingleValueEvent(new ValueEventListener() {
  337. @Override
  338. public void onDataChange(DataSnapshot dataSnapshot) {
  339. if (dataSnapshot.exists()) {
  340. boolean isActive = false;
  341. DataSnapshot activeSnapshot = dataSnapshot.child("active");
  342. for (DataSnapshot childSnapshot : activeSnapshot.getChildren()) {
  343. if (childSnapshot.getValue(String.class).equals(uid)) {
  344. isActive = true;
  345. break;
  346. }
  347. }
  348. if (!isActive) {
  349. promos.child("item").addListenerForSingleValueEvent(new ValueEventListener() {
  350. @Override
  351. public void onDataChange(DataSnapshot snapshot) {
  352. Integer item = snapshot.getValue(Integer.class);
  353. promos.child("usages").addListenerForSingleValueEvent(new ValueEventListener() {
  354. @Override
  355. public void onDataChange(@NonNull DataSnapshot snap) {
  356. Integer usages = snap.getValue(Integer.class);
  357. if (usages > 0) {
  358. FirebaseDatabase.getInstance().getReference().child("user").child(uid).child("balance").addListenerForSingleValueEvent(new ValueEventListener() {
  359. @Override
  360. public void onDataChange(@NonNull DataSnapshot snpshot) {
  361. Integer balance = snpshot.getValue(Integer.class) + item;
  362. FirebaseDatabase.getInstance().getReference().child("user").child(uid).child("balance").setValue(balance);
  363. Integer newUsages = usages - 1;
  364. promos.child("active").push().setValue(uid);
  365. promos.child("usages").setValue(newUsages);
  366. Toast.makeText(ProfilePage.this, "Промокод успешно применён", Toast.LENGTH_SHORT).show();
  367. }
  368.  
  369. @Override
  370. public void onCancelled(@NonNull DatabaseError error) {
  371.  
  372. }
  373. });
  374. } else {
  375. Toast.makeText(ProfilePage.this, "Промокод больше недействителен", Toast.LENGTH_SHORT).show();
  376. }
  377. }
  378.  
  379. @Override
  380. public void onCancelled(@NonNull DatabaseError error) {
  381.  
  382. }
  383. });
  384. }
  385.  
  386. @Override
  387. public void onCancelled(DatabaseError error) {
  388.  
  389. }
  390. });
  391. }else{
  392. Toast.makeText(ProfilePage.this, "Промокод уже активирован вами", Toast.LENGTH_SHORT).show();
  393. }
  394. }else{
  395. Toast.makeText(ProfilePage.this, "Промокод не существует", Toast.LENGTH_SHORT).show();
  396. }
  397. }
  398.  
  399. @Override
  400. public void onCancelled(DatabaseError databaseError) {
  401. }
  402. });
  403. }
  404. public void setNick(String nick) {
  405. String uid = mAuth.getCurrentUser().getUid();
  406. DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child("user").child(uid);
  407. userRef.child("nick").addListenerForSingleValueEvent(new ValueEventListener() {
  408. @Override
  409. public void onDataChange(DataSnapshot dataSnapshot) {
  410. userRef.child("nick").setValue(nick);
  411. Toast.makeText(ProfilePage.this, "Никнейм успешно установлен", Toast.LENGTH_SHORT).show();
  412. }
  413.  
  414. @Override
  415. public void onCancelled(DatabaseError databaseError) {
  416. // Обработка ошибок
  417. }
  418. });
  419. }
  420. public void checkNick(String nick) {
  421. DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference("user");
  422. Query query = usersRef.orderByChild("nick").equalTo(nick);
  423. query.addListenerForSingleValueEvent(new ValueEventListener() {
  424. @Override
  425. public void onDataChange(@NonNull DataSnapshot snapshot) {
  426. if (snapshot.exists()) {
  427. Toast.makeText(ProfilePage.this, "Такой никнейм уже занят", Toast.LENGTH_LONG).show();
  428. } else {
  429. setNick(nick);
  430. }
  431. }
  432.  
  433. @Override
  434. public void onCancelled(@NonNull DatabaseError error) {
  435. Toast.makeText(ProfilePage.this, "Ошибка при проверке никнейма", Toast.LENGTH_LONG).show();
  436. }
  437. });
  438. }
  439.  
  440.  
  441. @Override
  442. public void onInitializationComplete() {
  443. }
  444.  
  445. @Override
  446. public void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) {
  447. Log.e("UnityAdsExample", "Unity Ads initialization failed with error: [" + error + "] " + message);
  448. }
  449. }
Advertisement
Add Comment
Please, Sign In to add comment