package com.lozypop;
import android.app.*;import android.os.*;import android.view.*;import android.widget.*;import android.content.*;import android.net.Uri;import android.graphics.Color;import android.media.*;import org.json.*;import java.io.*;import java.net.*;
public class MainActivity extends Activity{
static final String API="https://lozypop.bryvestech.com/api/api.php",APP="com.lozypop",KEY="CHANGE_THIS_APP_SECRET";
LinearLayout banner;String session="";
public void onCreate(Bundle b){super.onCreate(b);setContentView(R.layout.main);banner=findViewById(R.id.bannerContainer);findViewById(R.id.rewardButton).setOnClickListener(v->rewarded());loadBanner();}
void loadBanner(){req("get_ad","banner",o->runOnUiThread(()->{try{JSONObject a=o.getJSONObject("data");TextView v=new TextView(this);v.setText(a.optString("title")+"\n"+a.optString("description"));v.setTextColor(Color.WHITE);v.setTextSize(16);v.setPadding(20,20,20,20);v.setOnClickListener(x->{event("click",a.optString("id"));open(a.optString("target_url"));});banner.removeAllViews();banner.addView(v,new LinearLayout.LayoutParams(-1,110));event("impression",a.optString("id"));}catch(Exception e){}}));}
void rewarded(){req("get_ad","rewarded",o->runOnUiThread(()->{try{JSONObject a=o.getJSONObject("data");session=a.optString("reward_session");Dialog d=new Dialog(this);VideoView v=new VideoView(this);v.setVideoURI(Uri.parse(a.optString("asset_url")));v.setOnPreparedListener(m->{req("start_reward","rewarded",z->{});event("start",a.optString("id"));v.start();});v.setOnCompletionListener(m->{req("complete_reward","rewarded",z->runOnUiThread(()->{try{if(z.getBoolean("success"))toast("Reward: "+z.getJSONObject("data").optInt("reward"));else toast("Reward not verified");}catch(Exception e){}}));d.dismiss();});d.setContentView(v);d.setCancelable(false);d.show();Window w=d.getWindow();if(w!=null)w.setLayout(-1,-1);}catch(Exception e){toast("No rewarded ad available");}}));}
void req(String action,String type,CB cb){new Thread(()->{try{String u=API+"?action="+action+"&type="+type+"&app_id="+APP+"&api_key="+KEY;if(action.contains("reward"))u+="&session="+session;HttpURLConnection c=(HttpURLConnection)new URL(u).openConnection();BufferedReader r=new BufferedReader(new InputStreamReader(c.getInputStream()));StringBuilder s=new StringBuilder();String l;while((l=r.readLine())!=null)s.append(l);r.close();cb.ok(new JSONObject(s.toString()));}catch(Exception e){cb.ok(new JSONObject());}}).start();}
void event(String t,String id){new Thread(()->{try{new URL(API+"?action=event&type="+t+"&ad_id="+id+"&app_id="+APP+"&api_key="+KEY).openStream().close();}catch(Exception e){}}).start();}
void open(String u){try{startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(u)));}catch(Exception e){}}void toast(String s){Toast.makeText(this,s,Toast.LENGTH_SHORT).show();}interface CB{void ok(JSONObject o);}
}