And now even widget works.

master
Dmitry Isaenko 2020-09-27 21:29:51 +03:00
parent 7ec331baf6
commit f867ddd699
6 changed files with 59 additions and 62 deletions

View File

@ -7,8 +7,8 @@ android {
applicationId "com.blogspot.developersu.nowol.nowol"
minSdkVersion 14
targetSdkVersion 29
versionCode 3
versionName "3.0"
versionCode 4
versionName "4.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}

View File

@ -26,9 +26,6 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".popUp"
android:theme="@android:style/Theme.Dialog" />
<!---->
<receiver android:name=".com.blogspot.developersu.nowol.nowol.widget.NoWolWidget">
<intent-filter>

View File

@ -29,64 +29,64 @@ public class SendRequestService extends IntentService {
private void sendData(int state, int awID){
// MainActivity requested
if (awID != 0) {
RemoteViews rv = new RemoteViews(getPackageName(), R.layout.no_wol_widget);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
if (awID == 0) {
// Log.d("qwerty1212", "MainActivity case. Status = " + Integer.toString(state) + " awID = " + Integer.toString(awID));
resReceiver.send(state, null);
}
switch (state){
case 1:
rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.statusOnline));
rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorPrimary));
// Log.d("qwerty1212", "case 1 widget");
break;
case 0:
rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.statusOffline));
rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorRed));
// Log.d("qwerty1212", "case 0 widget");
break;
case -1:
rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.noResponse));
rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorOrange));
// Log.d("qwerty1212", "case -1 widget");
break;
}
appWidgetManager.updateAppWidget(awID, rv);
}
else{
// Log.d("qwerty1212", "MainActivity case. Status = " + Integer.toString(state) + " awID = " + Integer.toString(awID));
resReceiver.send(state, null);
RemoteViews rv = new RemoteViews(getPackageName(), R.layout.no_wol_widget);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
switch (state){
case STATE_ON:
rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.statusOnline));
rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorPrimary));
// Log.d("qwerty1212", "case 1 widget");
break;
case STATE_OFF:
rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.statusOffline));
rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorRed));
// Log.d("qwerty1212", "case 0 widget");
break;
case STATE_UNKNOWN:
rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.noResponse));
rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorOrange));
// Log.d("qwerty1212", "case -1 widget");
break;
}
appWidgetManager.updateAppWidget(awID, rv);
}
@Override
protected void onHandleIntent(Intent intent) {
if (intent != null) {
// Log.d("service", "Got intent");
Bundle bndle = intent.getExtras();
String url = bndle.getString("url");
resReceiver = bndle.getParcelable("reciever");
final int awID = bndle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
if (intent == null)
return;
// Log.d("qwerty1212", "got from " + Integer.toString(awID) +" "+ url);
// Log.d("service", "Got intent");
Bundle bndle = intent.getExtras();
String url = bndle.getString("url");
resReceiver = bndle.getParcelable("reciever");
final int awID = bndle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
RequestQueue queueStd = Volley.newRequestQueue(this);
StringRequest strRequest = new StringRequest(Request.Method.GET, url, //will be 4 requests
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("00c600")){
sendData(STATE_ON, awID);
} else {
sendData(STATE_OFF, awID);
}
// Log.d("qwerty1212", "got from " + Integer.toString(awID) +" "+ url);
RequestQueue queueStd = Volley.newRequestQueue(this);
StringRequest strRequest = new StringRequest(Request.Method.GET, url, //will be 4 requests
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("00c600")){
sendData(STATE_ON, awID);
} else {
sendData(STATE_OFF, awID);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
sendData(STATE_UNKNOWN, awID);
}
});
queueStd.add(strRequest);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
sendData(STATE_UNKNOWN, awID);
}
});
queueStd.add(strRequest);
}
}

View File

@ -12,16 +12,16 @@ import android.view.View;
import android.widget.Button;
import android.widget.RemoteViews;
import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.blogspot.developersu.nowol.nowol.R;
import com.blogspot.developersu.nowol.nowol.SendRequestService;
import com.google.android.material.switchmaterial.SwitchMaterial;
public class WidgetConfigurator extends AppCompatActivity {
private SeekBar opacityBar;
private Switch bkgoundSwitch;
private SwitchMaterial bkgoundSwitch;
private void generateWidgetAndDie(int awID, Context context){
SharedPreferences.Editor settingsEditor;
@ -70,7 +70,7 @@ public class WidgetConfigurator extends AppCompatActivity {
settingsEditor.putInt("WidgetBgColor", Color.argb(255-opacityBar.getProgress()*255/100, 0x00,0x00,0x00));
Log.d("qwerty1212", Integer.toString(Color.argb(255-opacityBar.getProgress()*255/100, 0x00,0x00,0x00)));
}
settingsEditor.commit();
settingsEditor.apply();
awm.updateAppWidget(awID,rv);
// Send intent to widget
@ -95,11 +95,11 @@ public class WidgetConfigurator extends AppCompatActivity {
final TextView opacityLbl = findViewById(R.id.configOpacityLbl);
// Prepare seekBar element
opacityLbl.setText(getString(R.string.confOpacity) + " " + Integer.toString(opacityBar.getProgress())+"%");
opacityLbl.setText(getString(R.string.confOpacity) + " " + opacityBar.getProgress()+"%");
opacityBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
opacityLbl.setText(getString(R.string.confOpacity) + " " + Integer.toString(i) + "%");
opacityLbl.setText(getString(R.string.confOpacity) + " " + i + "%");
}
@Override

View File

@ -32,7 +32,7 @@
android:layout_height="25dp"
android:layout_weight="1" />
<Switch
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/configSwitch"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:previewImage="@drawable/widget_preview"
android:minHeight="40dp"
android:minWidth="110dp"
android:minWidth="80dp"
android:updatePeriodMillis="6400000"
android:resizeMode="none"
android:configure="com.blogspot.developersu.nowol.nowol.com.blogspot.developersu.nowol.nowol.widget.WidgetConfigurator"