You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.5 KiB
Java
143 lines
4.5 KiB
Java
package com.waveshare.epaperesp32loader;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.view.View;
|
|
import android.view.Window;
|
|
import android.widget.Button;
|
|
import android.widget.ImageView;
|
|
import android.widget.TextView;
|
|
|
|
import com.waveshare.epaperesp32loader.image_processing.EPaperDisplay;
|
|
import com.waveshare.epaperesp32loader.image_processing.EPaperPicture;
|
|
|
|
/**
|
|
* <h1>Filtering activity</h1>
|
|
* The activity offers to select one of available image filters,
|
|
* which converts the loaded image for better pixel format
|
|
* converting required for selected display.
|
|
*
|
|
* @author Waveshare team
|
|
* @version 1.0
|
|
* @since 8/18/2018
|
|
*/
|
|
|
|
|
|
public class FilteringActivity extends AppCompatActivity
|
|
{
|
|
// View
|
|
//------------------------------------------
|
|
private Button button;
|
|
private TextView textView;
|
|
private ImageView imageView;
|
|
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState)
|
|
{
|
|
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.palettes_activity);
|
|
getSupportActionBar().setTitle(R.string.filt);
|
|
|
|
// View
|
|
//------------------------------------------
|
|
textView = findViewById(R.id.txt_indexed);
|
|
imageView = findViewById(R.id.img_indexed);
|
|
|
|
// Disable unavailable palettes
|
|
//------------------------------------------
|
|
boolean redIsEnabled = (EPaperDisplay.getDisplays()[EPaperDisplay.epdInd].index & 1) != 0;
|
|
findViewById(R.id.btn_wbrl).setEnabled(redIsEnabled);
|
|
findViewById(R.id.btn_wbrd).setEnabled(redIsEnabled);
|
|
|
|
// Disable unavailable palettes just for 5.65f e-Paper
|
|
//------------------------------------------
|
|
if(EPaperDisplay.epdInd == 25 || EPaperDisplay.epdInd == 37)
|
|
{
|
|
redIsEnabled = false;
|
|
findViewById(R.id.btn_wb_l).setEnabled(redIsEnabled);
|
|
findViewById(R.id.btn_wb_d).setEnabled(redIsEnabled);
|
|
}
|
|
}
|
|
|
|
// Accept the selected
|
|
public void onOk(View view)
|
|
{
|
|
// If palette is not selected, then exit
|
|
//-----------------------------------------------------
|
|
if (button == null) return;
|
|
|
|
// Close palette activity and return palette's name
|
|
//-----------------------------------------------------
|
|
Intent intent = new Intent();
|
|
intent.putExtra("NAME", button.getText().toString());
|
|
|
|
setResult(RESULT_OK, intent);
|
|
finish();
|
|
}
|
|
|
|
public void onCancel(View view)
|
|
{
|
|
onBackPressed();
|
|
}
|
|
|
|
@Override
|
|
public void onBackPressed()
|
|
{
|
|
setResult(RESULT_CANCELED);
|
|
finish();
|
|
}
|
|
|
|
public void onWhiteAndBlackLevelClick(View view)
|
|
{
|
|
// Save pushed button and run image processing
|
|
//-----------------------------------------------------
|
|
button = (Button)view;
|
|
run(true, false);
|
|
}
|
|
|
|
public void onWhiteBlackRedLevelClick(View view)
|
|
{
|
|
// Save pushed button and run image processing
|
|
//-----------------------------------------------------
|
|
button = (Button)view;
|
|
run(true, true);
|
|
}
|
|
|
|
public void onWhiteAndBlackDitheringClick(View view)
|
|
{
|
|
// Save pushed button and run image processing
|
|
//-----------------------------------------------------
|
|
button = (Button)view;
|
|
run(false, false);
|
|
}
|
|
|
|
public void onWhiteBlackRedDitheringClick(View view)
|
|
{
|
|
// Save pushed button and run image processing
|
|
//-----------------------------------------------------
|
|
button = (Button)view;
|
|
run(false, true);
|
|
}
|
|
|
|
public void run(boolean isLvl, boolean isRed)
|
|
{
|
|
// Image processing
|
|
//-----------------------------------------------------
|
|
AppStartActivity.indTableImage = EPaperPicture.createIndexedImage(isLvl, isRed);
|
|
|
|
// Image view size calculation
|
|
//-----------------------------------------------------
|
|
int size = textView.getWidth();
|
|
imageView.setMaxHeight(size);
|
|
imageView.setMinimumHeight(size / 2);
|
|
imageView.setImageBitmap(AppStartActivity.indTableImage);
|
|
|
|
// Show selected image filter
|
|
//-----------------------------------------------------
|
|
textView.setText(button.getText());
|
|
}
|
|
}
|