package com.project.domel.peldaegy;

import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private PeldaegyService mPeldaegyService;
    Intent PeldaegyServiceIntent;
    Intent uzenetKuldo = new Intent();
    private uzenetFogado receiver;
    //ez azért kell, hogy le tudjuk kérdezni a MainActivity osztályát a Service-ből
    public MainActivity(Context dapplicationContext) {        dapplicationContext= this;     }
    //az eredeti is kell, mert különben fagyás
    public MainActivity() {}

    //megnézi hogy fut-e a Service
    private boolean isMyServiceRunning(Class<?> serviceClass) {
        ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }

    //service-ből jövő üzenet fogadása
    public class uzenetFogado extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle extras = intent.getExtras();
            if (extras!=null){
                //-------------------------------------------------------------------------------------------
                if (extras.containsKey("szoveg")){
                    String st = intent.getStringExtra("szoveg");
                    TextView tw = (TextView)findViewById(R.id.textView);
                    tw.setText(st);
                }
            }

        }}

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPeldaegyService = new PeldaegyService(this);
        PeldaegyServiceIntent = new Intent(this, mPeldaegyService.getClass());
        //fogadó broadcast beregisztrálása
        IntentFilter filter = new IntentFilter("mainAct");
        filter.addCategory(Intent.CATEGORY_DEFAULT);
        receiver = new uzenetFogado();
        registerReceiver(receiver, filter);
        //küldő broadcast beregisztrálása
        uzenetKuldo.setAction("serviceAct");
        uzenetKuldo.addCategory(Intent.CATEGORY_DEFAULT);
    }


    //indul button
    public void indul(View view) {
        if (!isMyServiceRunning(mPeldaegyService.getClass())) {
            PeldaegyServiceIntent.putExtra("szambacsi",155);
            startService(PeldaegyServiceIntent);
            PeldaegyServiceIntent.replaceExtras(new Bundle());
        }
    }

    //leáll button
    public void megall(View view) {
        if (isMyServiceRunning(mPeldaegyService.getClass())) {
            stopService(PeldaegyServiceIntent);
        }
    }

    //érték átadás a futó Service-be
    public void ertekatadas(View view) {
        if (isMyServiceRunning(mPeldaegyService.getClass())) {
            uzenetKuldo.putExtra("szambacsi", 817);             //küldendő szöveg
            sendBroadcast(uzenetKuldo);                         //küldés
            uzenetKuldo.replaceExtras(new Bundle());            //törlés
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
    }
}
