diff --git a/app/build.gradle b/app/build.gradle index f77e300..71d60ff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.blogspot.developersu.nowol.nowol" minSdkVersion 14 targetSdkVersion 29 - versionCode 1 - versionName "1.0" + versionCode 2 + versionName "2.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java index ef99d3a..5d73c63 100644 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java +++ b/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java @@ -13,7 +13,6 @@ import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; -import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.core.content.ContextCompat; @@ -21,20 +20,18 @@ import com.blogspot.developersu.nowol.nowol.com.blogspot.developersu.nowol.nowol import com.google.android.material.snackbar.Snackbar; public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuningValueListener { - private TextView hostAdress; + private TextView hostAddress; private TextView statusLbl; - private Button powerBtn; - private Button power5Btn; - private Button resetBtn; Intent SendRequestIntent; - private SharedPreferences settings; + private int status = -2; + SharedPreferences.Editor settingsEditor; // define reciever for the data we got from service private class MyResultReciever extends ResultReceiver{ - public MyResultReciever(Handler handler) { + MyResultReciever(Handler handler) { super(handler); } @@ -53,12 +50,13 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorRed)); break; case -1: - inform(getResources().getString(R.string.noResponse) + hostAdress.getText().toString()); + inform(getResources().getString(R.string.noResponse) + hostAddress.getText().toString()); statusLbl.setText(getResources().getString(R.string.noResponse)); - statusLbl.setTextColor(hostAdress.getTextColors()); + statusLbl.setTextColor(hostAddress.getTextColors()); break; default: break; } + status = resultCode; } } //reciever end @@ -82,6 +80,12 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni return true; } + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt("STATE", status); + } + @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -92,21 +96,43 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni SendRequestIntent.putExtra("reciever", myReciever); // toolbar setup start - Toolbar toolBar = (Toolbar)findViewById(R.id.toolbar); + Toolbar toolBar = findViewById(R.id.toolbar); setSupportActionBar(toolBar); - final ActionBar ActBar = getSupportActionBar(); + getSupportActionBar(); // toolbar setup end - hostAdress = (TextView)findViewById(R.id.hostNameStaticMain); - statusLbl = (TextView)findViewById(R.id.statusTxtMainAct); - powerBtn = (Button)findViewById(R.id.pwrBntMainAct); - power5Btn = (Button)findViewById(R.id.pwr5BntMainAct); - resetBtn = (Button)findViewById(R.id.resBntMainAct); + hostAddress = findViewById(R.id.hostNameStaticMain); + statusLbl = findViewById(R.id.statusTxtMainAct); + + if (savedInstanceState != null){ + status = savedInstanceState.getInt("STATE"); + switch (status) { + case 1: + inform(getResources().getString(R.string.statusOnline)); + statusLbl.setText(getResources().getString(R.string.statusOnline)); + statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimaryDark)); + break; + case 0: + inform(getResources().getString(R.string.statusOffline)); + statusLbl.setText(getResources().getString(R.string.statusOffline)); + statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorRed)); + break; + case -1: + inform(getResources().getString(R.string.noResponse) + hostAddress.getText().toString()); + statusLbl.setText(getResources().getString(R.string.noResponse)); + statusLbl.setTextColor(hostAddress.getTextColors()); + break; + } + } + + Button powerBtn = findViewById(R.id.pwrBntMainAct); + Button power5Btn = findViewById(R.id.pwr5BntMainAct); + Button resetBtn = findViewById(R.id.resBntMainAct); // Set request queue for Volley - settings = getSharedPreferences("NoWolPreferences", MODE_PRIVATE); - hostAdress.setText(settings.getString("Host", getResources().getString(R.string.hostNameDefault))); + SharedPreferences settings = getSharedPreferences("NoWolPreferences", MODE_PRIVATE); + hostAddress.setText(settings.getString("Host", getResources().getString(R.string.hostNameDefault))); settingsEditor = settings.edit(); final Button.OnClickListener ActionButtonsListener = new Button.OnClickListener() { @@ -114,13 +140,13 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni public void onClick(View v) { switch (v.getId()) { case R.id.pwrBntMainAct: - doRequest(hostAdress.getText().toString() + "/?POWER0=on"); + doRequest(hostAddress.getText().toString() + "/?POWER0=on"); break; case R.id.pwr5BntMainAct: - doRequest(hostAdress.getText().toString() + "/?POWER1=on"); + doRequest(hostAddress.getText().toString() + "/?POWER1=on"); break; case R.id.resBntMainAct: - doRequest(hostAdress.getText().toString() + "/?RESET=on"); + doRequest(hostAddress.getText().toString() + "/?RESET=on"); break; default: break; @@ -131,11 +157,11 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni powerBtn.setOnClickListener(ActionButtonsListener); power5Btn.setOnClickListener(ActionButtonsListener); resetBtn.setOnClickListener(ActionButtonsListener); - } + } @Override public void onFinishEdit (String hostNameReSet){ - hostAdress.setText(hostNameReSet); + hostAddress.setText(hostNameReSet); inform(getResources().getString(R.string.hostLblMain) + hostNameReSet); settingsEditor.putString("Host", hostNameReSet); settingsEditor.commit(); @@ -150,7 +176,7 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni updateWidgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, IDs); getApplicationContext().sendBroadcast(updateWidgetIntent); /* - broadcase end + broadcast end */ } @@ -158,10 +184,10 @@ public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuni public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case R.id.refreshMenu: /* Button requests status */ - doRequest(hostAdress.getText().toString()); + doRequest(hostAddress.getText().toString()); break; case R.id.changeHostMenu: /* Button requests pop-up window */ - popUp N = popUp.newInstance(hostAdress.getText()); + popUp N = popUp.newInstance(hostAddress.getText()); N.show(this.getSupportFragmentManager(), "tst"); break; default: diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java index 3e49b91..a318933 100644 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java +++ b/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java @@ -17,8 +17,11 @@ import com.android.volley.toolbox.Volley; public class SendRequestService extends IntentService { - private RequestQueue queueStd; - private ResultReceiver resReciever; + private static final int STATE_ON = 1; + private static final int STATE_OFF = 0; + private static final int STATE_UNKNOWN = -1; + + private ResultReceiver resReceiver; public SendRequestService() { super("MyIntentService"); @@ -51,7 +54,7 @@ public class SendRequestService extends IntentService { } else{ // Log.d("qwerty1212", "MainActivity case. Status = " + Integer.toString(state) + " awID = " + Integer.toString(awID)); - resReciever.send(state, null); + resReceiver.send(state, null); } } @@ -61,30 +64,29 @@ public class SendRequestService extends IntentService { // Log.d("service", "Got intent"); Bundle bndle = intent.getExtras(); String url = bndle.getString("url"); - resReciever = bndle.getParcelable("reciever"); + resReceiver = bndle.getParcelable("reciever"); final int awID = bndle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID); // Log.d("qwerty1212", "got from " + Integer.toString(awID) +" "+ url); - queueStd = Volley.newRequestQueue(this); + RequestQueue queueStd = Volley.newRequestQueue(this); StringRequest strRequest = new StringRequest(Request.Method.GET, url, //will be 4 requests new Response.Listener() { @Override public void onResponse(String response) { if (response.contains("00c600")){ - sendData(1, awID); + sendData(STATE_ON, awID); } else { - sendData(0, awID); + sendData(STATE_OFF, awID); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { - sendData(-1, awID); + sendData(STATE_UNKNOWN, awID); } }); queueStd.add(strRequest); - } } } diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java index c3690fa..535b250 100644 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java +++ b/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java @@ -16,16 +16,10 @@ import com.blogspot.developersu.nowol.nowol.SendRequestService; public class NoWolWidget extends AppWidgetProvider { - private SharedPreferences sharedSettings; - String hostIP; - int bgColor; - - private void setRequests(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIDs){ - - sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); - hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault)); - bgColor = sharedSettings.getInt("WidgetBgColor", Color.BLACK); + SharedPreferences sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); + String hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault)); + int bgColor = sharedSettings.getInt("WidgetBgColor", Color.BLACK); RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.no_wol_widget); diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java index 3db4914..4cb6c1f 100644 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java +++ b/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java @@ -10,7 +10,6 @@ import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; -import android.widget.CompoundButton; import android.widget.RemoteViews; import android.widget.SeekBar; import android.widget.Switch; @@ -90,10 +89,10 @@ public class WidgetConfigurator extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_widget_configurator); - Button submitBtn = (Button)findViewById(R.id.configBtnSubmit); - opacityBar = (SeekBar)findViewById(R.id.configSeekBar); - bkgoundSwitch = (Switch)findViewById(R.id.configSwitch); - final TextView opacityLbl = (TextView)findViewById(R.id.configOpacityLbl); + Button submitBtn = findViewById(R.id.configBtnSubmit); + opacityBar = findViewById(R.id.configSeekBar); + bkgoundSwitch = findViewById(R.id.configSwitch); + final TextView opacityLbl = findViewById(R.id.configOpacityLbl); // Prepare seekBar element opacityLbl.setText(getString(R.string.confOpacity) + " " + Integer.toString(opacityBar.getProgress())+"%"); @@ -108,16 +107,7 @@ public class WidgetConfigurator extends AppCompatActivity { @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); - // Prepare Switch colors element - bkgoundSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { - if (isChecked) - bkgoundSwitch.setText(getString(R.string.confWhite)); - else - bkgoundSwitch.setText(getString(R.string.confBlack));; - } - }); + bkgoundSwitch.setText(getString(R.string.confWhite)); // Cover widget intent Intent initialConfIntent = getIntent(); diff --git a/app/src/main/res/layout/activity_widget_configurator.xml b/app/src/main/res/layout/activity_widget_configurator.xml index dae30f9..caf9a5e 100644 --- a/app/src/main/res/layout/activity_widget_configurator.xml +++ b/app/src/main/res/layout/activity_widget_configurator.xml @@ -37,7 +37,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" - android:text="@string/confBlack" /> + android:text="@string/confWhite" /> "Создать виджет" "Прозрачность" "Белый фон" - "Чёрный фон" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 43976e8..53c0d24 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -25,6 +25,5 @@ "Create widget" "Opacity" "White background" - "Black background"